Ich möchte zur dritten Ansicht im Navigationsstapel zurückkehren und zur ersten Ansicht zurückkehren.
Ich weiß, wie man eine Ansicht auf einmal öffnet:
[self.navigationController popViewControllerAnimated:YES];
Aber wie mache ich zwei gleichzeitig?
ios
iphone
uinavigationcontroller
Adam Waite
quelle
quelle
Antworten:
Sie können dies versuchen, um auch zwischen dem Navigationscontroller-Stapel zu springen
quelle
Hier sind zwei
UINavigationController
Erweiterungen, die Ihr Problem lösen können. Ich würde empfehlen, die erste zu verwenden, die zuUIViewController
einer bestimmten Klasse gehört:und benutze es so:
quelle
removeLast
durch just ersetzenremoveLast(2)
.let vc = viewControllers[viewControllers.count - viewsToPop + 1]
, um richtig zu funktionieren, müssen Sie es ersetzen durch:let vc = viewControllers[viewControllers.count - (viewsToPop + 1)]
oderlet vc = viewControllers[viewControllers.count - viewsToPop - 1]
Sie können zum (ersten) "Root" -Ansichts-Controller wechseln mit
popToRootViewControllerAnimated
:UINavigationController
Referenz :quelle
objectAtIndex: 1 -> Sie können den gewünschten Index übergeben
quelle
Swift 2 - xCode 7.3
Dies könnte eine sehr nützliche Erweiterung für Pop-UIViewController sein:
quelle
Wenn Sie nur 2 auf einmal popen möchten, weil Ihr rootViewController (viel) tiefer ist als 2, können Sie UIviewController beispielsweise eine Kategorie hinzufügen:
UINavigationController + popTwice.h
UINavigationController + popTwice.m
Importieren Sie die Kategorie
#import "UINavigationController+popTwice.h"
irgendwo in Ihre Implementierung und verwenden Sie diese Codezeile, um 2 Controller gleichzeitig zu platzieren:ist das nicht toll :) :)
quelle
Verwenden Sie dann diese Methode
quelle
Sie können auch Folgendes ausprobieren: -
quelle
quelle
quelle
In Swift 3 können Sie einen, zwei oder mehr Viewcontroller auf diese Weise aus dem Navigationscontroller entfernen
Hier ist FromWhereYouWantToGoController der Zielcontroller. Ich hoffe es hilft.
quelle
Sie können den anfänglichen Ansichts-Controller (den, zu dem Sie zurückkehren möchten) übergeben und diese Zeile in der letzten Ansicht aufrufen:
L. L.
quelle
Ich habe diese Antwort hier nicht gesehen. Wenn Sie nur einige wenige (nicht bis zum Stammverzeichnis) einfügen möchten, können Sie einfach durch self.navigationController.viewControllers iterieren und nach Klassentypen suchen. Wenn Sie eine Referenz haben, verwenden Sie Folgendes:
quelle
Sie können zum Root View Controller zurückkehren
Wenn die Ansicht, in die Sie einblenden möchten, nicht die erste ist, müssen Sie sie in viewWillAppear Ihrer vorherigen Ansicht erneut einfügen
quelle
Hier ist eine kleine Funktion, mit der ich X ViewController zurückkehre:
quelle
Swift-Version ab (Swift 1.2 / Xcode 6.3.1) zweimal oder öfter
oder
quelle
Sie können den Stapel der UIViewController verwenden. 1. Rufen Sie das Array aller viewController im Stapel ab. 2. Durchlaufen Sie das gesamte Array und suchen Sie den gewünschten viewController,
indem Sie den Klassentyp abgleichen. 3. Öffnen Sie den viewController.
quelle
Verwenden einer einfachen UINavigationController-Erweiterung :
quelle