0

J'écris un programme avec un UITableView avec et ajouter un bouton dans la barre de navigation qui mène à une page d'édition. Lorsque vous cliquez sur un élément de la table, une vue (rView) est poussée avec les informations relatives à cet élément. Cette vue a un bouton d'édition qui mène également à la page d'édition. Est-il possible que je puisse mettre une instruction if pour le bouton done sur la page d'édition qui dit "si parentViewController est le UITableView pour aller à rView, sinon popViewController?" Je suppose qu'il existe un moyen de le faire, mais je ne suis pas sûr de la syntaxe pour le faire. Mercisi l'instruction parentViewContoller

Répondre

1

Si je comprends bien, vous avez un UINavigationController et pousser sur elle

  1. un UITableView
  2. un « rViewController » (vous ne pouvez pas pousser une vue, doit être un contrôleur)
  3. une "EditController"

Mais il est possible que l'étape 2 soit omise et que vous accédiez directement à l'écran d'édition.

Maintenant, lorsque le dernier contrôleur est sauté, vous voulez pouvoir toujours aller à un "rViewController", même si ce n'est pas sur la pile. Tout d'abord, parentViewController n'est pas le contrôleur précédent sur la pile, mais plutôt le UINavigationController lui-même, donc cela n'a rien à voir avec le problème actuel.

La façon de le faire est en définissant la propriété viewControllers du UINavigationController explicitement avec un NSArray. Je ne l'ai pas essayé, mais cela devrait fonctionner:

Lorsqu'un utilisateur appuie sur le bouton « ajouter », au lieu de simplement pousser le contrôleur de vue de modifier, faire quelque chose comme:

NSArray* stack = navigationController.viewControllers; 
navigationController.viewControllers = [stack arrayByAddingObject:rViewController]; 
[navigationController pushViewController:editController animated:YES]; 

(Soit dit en passant, Je suggère de ne pas utiliser des noms comme « rview » sauf peut-être pour les variables locales très courte durée, comme dans une boucle. en utilisant des noms descriptifs est tout à fait partie de l'idiome de cacao et vous aidera beaucoup à long terme.)