Möchte ich nennen, eine neue view-controller und entfernen Sie das aktuelle view-controller-navigation controller-stack.
Zum Beispiel. Ich bin in view-controller Ein, und ich rufe B.
Nun habe ich in dem Stapel A , B,
Nun möchte ich nennen, C (von B).
Ich will den stack zu sein, C.
Dank.
InformationsquelleAutor Tony | 2011-12-21
Im Rahmen der ARC, hier ist eine mögliche Lösung:
Wie Sie sagen können, dieser code ersetzt die üblichen push-code in die Ansicht, die Sie versuchen zu entfernen vom stack ("B", die in Ihrer Frage). Linie 1-Kopien der Liste der view-Controller aus dem nav-controller-stack in eine
NSMutableArray
. Linie 2 ersetzt die Letzte (oberste) Ansicht mit den Sicht-wollen wir gehen zum nächsten ("C"). Zeile 3 macht den eigentlichen nav-controller-stack zu sein, die veränderte array, und animiert den übergang auf das oberste Element. (Natürlich können Sie nicht verwenden Sie diesen code, in der root viewController.)Fand ich einen alternativen Weg hier und angepasst für BOGEN:
Die erste Zeile ist notwendig, denn sobald Sie knallte die aktuelle Ansicht aus dem Stapel,
self.navigationController
wirdnil
und die Dritte Zeile wird nicht funktionieren. Gleiche Anzahl von Zeilen wie die vorige Art, aber auf diese Weise funktioniert durch integrierte Methoden anstelle von "manuell" das hantieren mit dem stack.danke, die Erklärung ist ausgezeichnet!
InformationsquelleAutor JohnK
Dies ist die Antwort.
Folgende code öffnet die aktuelle view-controller.
Und dieser schiebt die neue:
Hoffe, es hilft!
retain
siehe meine Lösung, unten.
InformationsquelleAutor Tony
Entfernen, die zweite-aus-zuletzt in der navigation den Punkt:
Beispielsweise führen Sie diese aus
viewDidLoad
auf dem controller C zum entfernen von controller B von der navigation stack.InformationsquelleAutor mopsled
Ich denke, Sie können dies tun, indem Sie zuerst knallen B von der navigation stack und dann drücken Sie C, in es. Sie sollten in der Lage sein zu verwenden [UINavigationController popViewControllerAnimated] und [UINavigationController pushViewController:animated].
Laut Apple Referenz, developer.apple.com/library/ios/#documentation/uikit/reference/... UINavigationController ist nicht beabsichtigt zu sein, untergeordnet. Warum etwas so einfaches so kompliziert?
Meine schlecht, ich habe darüber vergessen. Ignorieren Sie meine vorherigen Kommentar und Bearbeiten. Ich werde Sie alle entfernen...
InformationsquelleAutor barley
Können Sie diesen code verwenden.
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: selbst.navigationController.viewControllers];
[navigationArray removeAllObjects]; self.navigationController.viewControllers = navigationArray;
Hoffe, dass wird für Sie arbeiten.
InformationsquelleAutor user3875668