356 votes

UITableView didSelectRowAtIndexPath : ne pas être appelée sur le premier robinet

Je vais avoir un problème avec l' UITableView's didSelectRowAtIndexPath.

Ma table est telle que lorsque je sélectionne la ligne, elle initialise une nouvelle vue-contrôleur et le pousse.

La première fois que j'appuie sur n'importe quelle ligne dans la table, la méthode n'est pas appelée. Une fois que je sélectionne une autre ligne, il commence à travailler comme d'habitude.

J'ai vérifié cela en définissant un point d'arrêt sur didSelectRowAtIndexPath. Lors de l'ajout d'un NSLog pour la méthode, je vois que lorsque je sélectionne la deuxième ligne qui pousse finalement le nouveau-vue-contrôleur, je vois journal deux états s'affichent dans la console en même temps.

Toutes les suggestions?

1368voto

Ole Begemann Points 85798

N’importe quelle chance que vous avez accidentellement tapé n’aDeselectRowAtIndexPath ?

24voto

dsc Points 1330

Vérifiez également la propriété de sélection de votre vue de table dans le fichier XIB au catalogue. Utilisez « Selection unique » ou « Sélection Multiple », comme requis.

7voto

Chase Roberts Points 717

J'ai débattu de même de poster cette réponse parce que je pense que les étoiles sorte de alignées dans l'ordre pour que cela se manifeste.

Je vais avoir une variation de ce problème et avons vérifié que les autres solutions. Sur ma table, vue, il n'est pas le traitement de la dernière ligne de mon tableau sur la première frappe. Il met en évidence, mais didSelectRowAtIndexPath n'est pas appelé. Toutes les autres lignes, beau travail. Mais si je tourne la tableview rebondir sur il semble alors à résoudre le problème (mais alors vous avez à traiter avec un tableview de rebond).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X