tableView:canEditRowAtIndexPath:当popupviewController时崩溃

我有一个UITableView viewController,我允许用刷卡编辑(删除)的行 – 很像邮件应用程序。 我这样做,除其他外,这种方法:

 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } 

但是,如果我有一个删除button显示,并在同一时间我使用我的UINavigationController后退导航,即当我popViewControllerAnimated:应用程序崩溃与以下消息:

[ViewController tableView:canEditRowAtIndexPath:]:发送到释放实例0xaae64d0的消息

我该如何解决这个问题?

在你的视图控制器的dealloc方法中,将表视图的editing属性设置为NO

我有同样的问题,但我使用ARC,我不想在dealloc方法中撒谎。 这样做在视图中将会消失,足以阻止事故的发生。

 - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [table setEditing:NO]; } 
  1. 使用

    tableall.delegate = nil在dealloc()

  2. 使用

    的tableView =零