tableView: canEditRowAtIndexPath: crash lors de l'ouverture de viewController

J'ai un viewController avec un UITableView , dont les lignes que je permets de modifier (supprimer) avec un glissement – un peu comme dans l'application Mail. Je le fais avec, entre autres, cette méthode:

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

Cependant, si j'ai un button de suppression révélé, et en même time j'utilise la navigation arrière de mon UINavigationController , c'est à dire quand je popViewControllerAnimated: l'application se bloque avec le message suivant:

[ViewController tableView: canEditRowAtIndexPath:]: message envoyé à l'instance libérée 0xaae64d0

Comment puis-je résoudre ce problème?

Dans votre méthode dealloc du controller de vue, définissez la propriété d' editing la vue de table sur NO .

J'ai eu le même problème, mais j'utilisais ARC et je ne voulais pas me perdre dans la méthode dealloc. Le faire dans viewWillDisappear était suffisant pour arrêter le crash.

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

    tableview.delegate = nil dans dealloc ()

  2. Utilisation

    tableView = néant