2010-07-03 5 views
1

J'ai un UITableView. Sur ma barre de navigation, j'ai un bouton d'édition. Je veux pouvoir l'activer et le désactiver selon certaines conditions. Par exemple, lorsque l'utilisateur supprime le dernier d'un certain type de ligne, je veux griser le bouton Modifier car il n'y a plus de ces lignes à supprimer.Désactivation du bouton d'édition NavBar

Ce que je fais en ce moment est l'arrivée

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

pour voir si je veux désactiver le bouton d'édition (comme cela semble l'endroit le plus judicieux de le faire puisque l'utilisateur ne peut supprimer ces lignes avec l'icône de suppression rouge). J'appelle alors:

[self.tableView setEditing:NO animated:NO]; 
[self.navigationItem.leftBarButtonItem setEnabled:NO]; 

pour griser le bouton d'édition. Cela fonctionne mais le titre du bouton d'édition est toujours 'Terminé' et non 'éditer'. De même, si l'utilisateur ajoute des lignes et que je vérifie si je devrais activer à nouveau le bouton d'édition, je trouve que le mode d'édition est toujours OUI (le bouton d'édition est de couleur bleue lorsqu'il est réactivé).

Comment dois-je aborder cette question?

Répondre

1

Utilisez-vous un contrôleur de navigation? Si oui, essayez de régler l'édition sur le contrôleur:

[self.navigationController setEditing:NO animated:NO]; 
+0

Merci. Fonctionne comme un charme. – Garry

Questions connexes