2009-05-05 7 views
1

J'ai une classe RootViewController héritée de UITableViewController. Lorsqu'une cellule est désélectionnée par l'utilisateur, je souhaite activer/désactiver certains boutons de la barre d'outils.iPhone Impossible de désélectionner un UITableViewCell

Comment intercepter l'événement de désélection? J'ai essayé d'utiliser cette méthode, mais elle ne semble pas s'exécuter du tout. Des idées comment cam cela être fait?

Répondre

1

Je ne pense pas qu'il existe un événement deselectRowAtIndexPath, il existe une méthode que vous pouvez appeler pour désélectionner l'indexPath, mais en regardant le SDK, je ne vois pas un événement pour cela dans UITableViewDelegate: http://developer.apple.com/iPhone/library/documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html.

Pourriez-vous activer/désactiver certains boutons de la barre d'outils pendant l'événement didSelectRowAtIndexPath:?

-Rog

0

Ceci est dans le SDK bêta actuelle ne qui signifie qu'il pourrait être bogué/changé/non pris en charge ...

Je ne remarqué que votre déclaration de méthode ne correspond pas au SDK (à moins, la version que j'ai).

Essayez de supprimer ; Je ne pense pas que ce soit applicable ici. Voir la ligne ~ 345 dans UITableView.h, et/ou faites un clic droit sur didDeselectRowAtIndexPath et "Aller à la définition", où vous trouverez probablement comment la méthode déléguée doit être définie.

Cela dit, si votre objectif est simplement de « activer/désactiver certains boutons lorsqu'une cellule est sélectionnée »,

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath; 

devrait fonctionner très bien. Cela se produit après qu'ils ont sélectionné la cellule et avant qu'elle ne soit désélectionnée. 'désélectionner' doit faire plus avec l'animation qu'avec l'interaction de l'utilisateur. La seule raison que je peux penser que vous voulez utiliser déselection est peut-être la valeur esthétique de s'assurer que votre événement se produit seulement après que la cellule de sélection n'est plus en surbrillance.

Questions connexes