2010-01-15 6 views
1

J'ai un bouton Modifier dans ma barre de navigation, et j'ai une vue de table.Comment supprimer des cellules d'une vue de table?

Mon bouton d'édition appelle une méthode -editAction.

Et puis, j'ai ce morceau de code pour supprimer une cellule, mais je ne sais pas comment je peux faire le bouton d'édition pour appeler ce code ... ou comment le bouton d'édition peut laisser l'affichage de la table rouge supprimer des cercles pour chaque cellule, qui déclenchent alors ceci:

// Override to support editing the table view. 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // Delete the managed object at the given index path 
     NSManagedObject *eventToDelete = [eventsArray objectAtIndex:indexPath.row]; 
     [managedObjectContext deleteObject:eventToDelete]; 

     // Update Event objects array and table view 
     [eventsArray removeObjectAtIndex:indexPath.row]; 
     [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; 

     // Commit the change 
     NSError *error; 
     if (![managedObjectContext save:&error]) { 
      // Handle the error 
     } 
    } 
} 

Répondre

3

Selon le code docs de référence de classe UITableView,:

tableView.editing = YES; 

devrait mettre la table en mode d'édition et afficher les cercles de suppression rouge . Ensuite, lorsque l'utilisateur supprime une cellule, votre méthode de source de données doit être appelée.

Vous pouvez également utiliser [tableView setEditing:YES animated:YES]; pour un effet d'animation

2

Selon vous la méthode de -viewDidLoad du contrôleur ajouter le bouton Edit:

self.navigationItem.rightBarButtonItem = self.editButtonItem; 

Ce bouton permet de basculer le mode d'édition du contrôleur, l'envoyer -setEditing: animé:

+0

D'où vient le editButtonItem? Il n'y a aucune propriété de ce type dans UITableView ou UITableViewController, et dans l'ensemble du code d'exemple, aucun editButtonItem n'est défini. Confondre ... – openfrog

+0

C'est de la catégorie UIViewControllerEditing pour UIViewController, voir UIViewController.h. – Costique

+0

Costique, cela ressemble à une bonne réponse, mais est-ce spécifique à UITableViewController? Sinon, ne savez pas comment l'UITableView reçoit le message setEditing: animated:? OP n'était pas spécifique à la classe de contrôleur de vue, c'est pourquoi j'ai donné ma réponse mais votre réponse serait préférable si c'est le cas. Merci – cidered

Questions connexes