Dies ist die perfekte Situation für eine Abwickelstrecke.
in Ihrem ersten Viewcontroller Setzen Sie diese (die Sie zurückkehren wollen):
@IBAction func backFromVC3(_ segue: UIStoryboardSegue) {
print("We are back in VC1!")
}
Dann im Storyboard in Ihrem 3. Viewcontroller, Steuer -Ziehen von Ihrem Button der zum Ausgang Symbol oben auf dem viewController und wählen Sie backFromVC3
aus dem Pop-up.
Jetzt, wenn der Benutzer die Schaltfläche in VC3 drückt, werden sowohl VC3 als auch VC2 verworfen und Sie kehren zu VC1 zurück.
Wenn Sie keine Storyboards verwenden, können Sie die viewControllers mit Code löschen. Hier ist der Code für einen Handler der Schaltfläche zwei Ebenen von Viewcontroller zu entlassen:
func doDismiss(_ sender: UIButton) {
// Use presentingViewController twice to go back two levels and call
// dismissViewController to dismiss both viewControllers.
self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil)
}
Lassen Sie die zweite Ansicht Controller seinen Presenter entlassen. – Avi
Sie können auch Abschlussblöcke verwenden. Wenn Sie einen View-Controller ablehnen, erhalten Sie einen Abschlussblock. –