2010-02-06 3 views
0

J'ai un contrôleur de navigation qui affiche viewcontroller A. Il y a un bouton droit (portant la mention « B ») qui conduit à viewController B.UINavigationController - Modification de l'état d'un UIViewController sur la pile

Maintenant, lorsque l'utilisateur fait un changement important dans (la vue gérée par) viewcontroller B, l'utilité de viewcontroller B est terminée. A partir de là, VC A devrait conduire à un nouveau VC, viewcontroller C. C'est le comportement que je veux. Cependant, parce que viewcontroller A a déjà été créé avec un bouton droit menant à "B", je ne sais pas comment l'obtenir pour se reconfigurer. Je veux qu'il ait maintenant un bouton droit étiqueté "C" qui mène au contrôleur de vue C.

J'ai été incapable de trouver n'importe quel exemple de code qui aborde une situation comme ceci. Pour résumer le problème à son essence, j'ai juste besoin d'être en mesure de refaire le viewcontroller A pendant qu'il est dans la pile du contrôleur de nav.

Répondre

0

Vous pouvez stocker une référence au contrôleur A dans votre délégué d'application et, lorsque le contrôleur B est terminé, modifier l'élément de navigation du contrôleur A comme appdelegate.controllerA.navigationItem.rightBarButtonItem = /* a new bar button item to create and push controller C goes here ... */.

+0

Oui, mais cela ne permettra pas à la barre de navigation actuelle de se redessiner avec un nouveau bouton. – mwt

+0

Bien sûr, tant que vous utiliserez un UINavigationController pour gérer votre pile de contrôleurs de vues (ce que vous devriez vraiment faire). – MrMage

+0

Très bien MrMage, j'ai eu la chance de l'essayer. Cela a fonctionné parfaitement. Combiné avec une autre technique (popping un contrôleur de vue pour se débarrasser de celui-ci), il a résolu mon problème. Merci beaucoup! – mwt

Questions connexes