Eh bien, au fond ce que vous voulez faire est:
- Supprimer la ligne de la source de données (tableau).
- Indiquez à la vue de table que vous avez supprimé une ligne de la source de données.
code correct devrait probablement ressembler à ce que:
if (editingStyle == UITableViewCellEditingStyleDelete) {
[tableFavoritesData removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
EDIT: Je ne l'ai pas remarqué une autre erreur.
Vous devez spécifier le type d'animation, pas seulement passer YES ou NO. Par exemple: UITableViewRowAnimationFade. Consultez les valeurs UITableViewRowAnimation possibles here.
EDIT 2: Pour le commentaire ci-dessous (commentaires de mise en forme suck): Commander NSNotificationCenter dans la documentation, en particulier addObserver: sélecteur: nom: objet: et postNotificationName: objet: méthodes.
Dans l'autre contrôleur de vue (probablement la méthode viewDidLoad):
[[NSNotificationServer defaultCenter] addObserver:self selector:@selector(deletedRow:) name:@"RowDeleted" object:nil];
-(void) deletedRow:(NSNotification*) notification
{
NSDictionary* userInfo = [notification userInfo];
NSIndexPath indexPath = [userInfo objectForKey:@"IndexPath"];
// your code here
}
et en supprimant la ligne:
if (editingStyle == UITableViewCellEditingStyleDelete) {
...
[[NSNotificationServer defaultCenter] postNotificationName:@"RowDeleted" object:self userInfo:[NSDictionary dictionaryWithObject:indexPath forKey:@"IndexPath"]];
}
Rappelez-vous simplement que vous devez supprimer observateur du centre de notification lorsque vous dealloc la autre UIViewController:
[[NSNotificationServer defaultCenter] removeObserver: self];
Espérons que je n'ai pas ma ke beaucoup d'erreurs, je n'ai pas accès à XCode atm.
Merci beaucoup. (une note à ma question j'ai un tableau de données qui est copié d'un autre contrôleur à celui qui a une table.) Est-il possible de supprimer un objet de ce tableau sans avoir à recopier le tableau entier et nsuserdefault est-il supprimé?) –
J'ai ajouté un exemple de code à la réponse, je n'ai pas pu modifier mon commentaire car il a déjà été modifié. Généralement, vous souhaitez enregistrer votre autre ViewController en tant qu'observateur et lui envoyer une notification lors de la suppression de l'objet. – Mayjak