我的部分iPhone应用程序UITableView以分组格式显示三个静态部分.但是,在某些情况下(基于用户输入),最适合在视图控制器显示表时不显示这些部分中的最后一部分.
在viewDidLoad控制器的方法中,我添加了以下有条件执行的代码行:
if ([self.formula containsElementWithoutStableIsotopes]) {
NSLog(@"Deleting section 2 ...");
NSUInteger sectionToDelete = 2;
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionToDelete]
withRowAnimation:UITableViewRowAnimationAutomatic];
}
Run Code Online (Sandbox Code Playgroud)
"删除第2部分..."会记录到控制台,因此我知道此代码正在执行,但表格似乎不受影响:所有三个部分都照常显示.
在理想的情况下,我更喜欢在表格视图显示之前删除第2部分,但我可以忍受它在出现时被删除.但是,如果我将上面的代码放在viewDidAppear方法中,程序会引发一个NSInternalInconsistencyException因为删除前后的部分数量不匹配.
我真的很感谢你对这个主题的帮助.