9
votes

Comment choisir initialement une ligne dans UitailView

Je ne peux pas trouver un bon endroit pour appeler SelectRowatidexPath: Animated: ScrollPosition: à Initialement Sélectionnez une ligne dans UitailView . Les données de table n'ont pas été chargées lorsque le contrôleur de vue de la table est initialisé, je ne peux donc pas faire de sélection immédiatement après l'initialisation de mon UitailViewController (sur une exception liée aurait lieu autrement).


0 commentaires

3 Réponses :


3
votes

Essayez et surcharger ViewWillappear: Animated ou ViewDidAppear: Animated Assurez-vous d'appeler super également.

Assurez-vous d'appeler SelectRowAindexPath: IndexPath Animated: Non également, il choisira sans le délai.


1 commentaires

J'ai déjà essayé ces déjà. Mais malheureusement, j'ai besoin d'ajouter manuellement UitailView comme sous-visView à une autre vue afin que la vue ViewWillappappe-Viewwillappe: View ou ViewDididappear: Animé ne serait pas appelé. En outre, la sélection de chaque fois que la vue apparaît est plus qu'une "sélection initiale", et un drapeau supplémentaire est nécessaire pour déterminer si cette apparence est la première.



6
votes

Vous devez utiliser ViewWillappear: Pour définir l'état d'une vue avant d'apparaître, chaque fois qu'il apparaît, même si la vue a déjà été affichée précédemment. Toute vue non visible dans un uitabviewController ou UinavigationViewController peut être déchargée à tout moment, vous ne pouvez donc pas compter sur une vue non visible pour conserver son état.

ou, pour un contrôle plus fin, implémentez loadview , ViewDiDload et ViewDidunload . .

Si vous maintenez votre propre hiérarchie de contrôleurs de visualisation, vous devrez transférer manuellement la viewwillappear, la viewwilldisappear, etc., les messages à vos contrôleurs de votre sous-vue.


0 commentaires

2
votes

Vous pouvez définir n'importe quelle cellule sélectionnée dans la méthode CellfrotIndexpath d'UitailView.Be à l'aide de cellule.selected = YES;


0 commentaires