2016-10-03 1 views
6

Ich versuche, an die Wurzel-View-Controller mit dem folgenden Code, um Pop:Pop zu Root-Ansicht-Controller aus modal

self.navigationController!.popToRootViewController(animated: true) 

Dies funktioniert in der Regel, aber ich erhalte eine Fehlermeldung, wenn sie versuchen diesen Code zu verwenden, wenn der Strom Ansicht ist ein Modal. Wie gehe ich in diesem Fall zum Zurücksetzen auf den Root-View-Controller über?

Vielen Dank im Voraus.

+0

Welche Fehler Sie bekommen? –

Antwort

6

Sie können, dass die aktuellen Controller überprüfen präsentiert wird, wenn es dann entlassen wird vorgestellt und gehen die auf die rootViewController andere gehen weise direkt die rootViewController

if self.presentingViewController != nil { 
    self.dismiss(animated: false, completion: { 
     self.navigationController!.popToRootViewController(animated: true) 
    }) 
} 
else { 
    self.navigationController!.popToRootViewController(animated: true) 
} 
0

Wie wäre Verwendung Mitteilung?

Ihre modal nur Nachmeldung

und Ihre Navigation erhalten dann, Pop RootViewController

4

Sie haben ein Viewcontroller vorgestellt, so dass Sie es entlassen müssen.

Um eine Viewcontroller in schnellen zu entlassen, verwenden Sie diese:

self.dismiss(animated: true, completion: nil) 
2

Ergebnis:

Code

Nehmen wir an, dass Ihre Modal View den folgenden ViewController zugeordnet hat.

Im Wesentlichen zuerst, um Ihre Ansicht zu verbergen, die als Modal angezeigt wird, verwenden Sie dismiss(animated: Bool) Methode von Ihrer ViewController-Instanz.

Und für die als präsentiert Ansichten Pushed, die Sie von Ihrem Navigation Eigenschaft diese Methoden zum Beispiel verwenden: popToRootViewController(animated: Bool), popViewController(animated:Bool)

class ModalViewController: UIViewController { 

    @IBAction func backButtonTouched(_ sender: AnyObject) { 
    let navigationController = self.presentingViewController as? UINavigationController 

    self.dismiss(animated: true) { 
     let _ = navigationController?.popToRootViewController(animated: true) 
    } 
    } 

} 
Verwandte Themen