2009-09-21 86 views
4

你知道在表格进入编辑模式后,如何让一些单元格出现在表格视图中?就像编辑联系人时的“联系人”iPhone应用程序一样。如何在编辑模式下在UITableView中添加额外的单元格?

也许我错了,但编辑联系人时,它看起来像使用了分组的​​UITableView。

我尝试这样做:

[self.tableView setEditing:YES animated:YES]; 
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationBottom]; 

我的表才1时,不对其进行编辑部分,我想添加一个额外的部分编辑时(保持简单),但在调用上面的“insertSections”崩溃(我所有的表代表考虑到1或2个部分,这具体取决于self.editing,我试图显示在正常模式下两个部分,并能正常工作)

对于“numberOfSectionsInTableView”我有:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    if (!self.editing) return 1; 
    return 2; 
} 

回答

4

你在哪里输入了tableView的编辑状态?你应该这样做的 - [UINavigationController的setEditing:动画:]:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated { 
    [super setEditing:editing animated:animated]; 
    [self.tableView setEditing:editing animated:animated]; 

    if(editing){ 
     [self.tableView insertSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationBottom]; 
    } else { 
     // delete section 
    } 
} 

因此,而不是对的tableView调用setEditing的,把它的navigationController(可能self),则控制器将处理编辑模式。

所以控制器有一个编辑模式,和tableView有。一旦您以编程方式设置,或者当用户滑动删除一行时,tableView将处于编辑模式。在后一种情况下,控制器而不是处于编辑模式,但表查看

+0

非常好!事实上,这个问题与编辑模式中的内容混淆了。非常感谢! – 2009-09-21 16:59:38

+0

我必须继承UINavigationController吗?或者我在哪里放置了您的代码?谢谢 – JonEasy 2012-07-14 06:07:57

+0

此处显示的代码用于“UITableViewController”的子类,该子类可能是“UINavigationController”的子控制器。 'UINavigationController'处理显示导航栏和当前视图(控制器),你不需要它的子类。然而'UITableViewController'处理tableview的所有信息,所以你确实需要该类的一个子类。 – Joost 2012-07-14 12:56:24

相关问题