我有简单的主视图控制器和细节视图控制器,它们与两个 segue 相连,一个用于“显示细节”,一个用于“添加新”。
- “显示细节”使用 setEditing:NO 连接到细节视图控制器。
- 使用 setEditing:YES 点按“+”(添加图标)到详细视图控制器
iOS 5.1:“+”按我的预期工作,详细信息页面处于编辑模式,editingStyleForRowAtIndexPath 触发以显示插入和删除指示符。
iOS 6.0:“+”会转换到详细信息页面,但从不会触发 editingStyleForRowAtIndexPath。setEditing:YES 中的其他代码被执行。didSelectRowAtIndexPath 确实触发(代表=自我)。
一旦进入详细信息页面,编辑模式在这两种情况下都会按预期工作。
有任何想法吗?
// Master.m
if([[segue identifier] isEqualToString:@"NewRecipe"]) {
DetailViewController *detailViewController = [segue destinationViewController];
// stuff
detailViewController.recipe = r;
detailViewController.delegate = self;
detailViewController.editing = YES;
}
// Detail.m
-(void)setEditing:(BOOL)flag animated:(BOOL)animated {
if (flag) {
[self.tableView setEditing:flag animated:YES];
[self.tableView beginUpdates];
// the row does get added
[self.tableView insertRowsAtIndexPaths:@[pathToAdd] withRowAnimation:UITableViewRowAnimationAutomatic];
// datasource gets updated here
[self.tableView endUpdates];
....
}
}