解雇Swift的两个控制器

我有这种情况:

我有一个第一个视图控制器,当点击它的button,我打开模式模式下的另一个视图控制器,在这个视图控制器,当我点击另一个button,我打开模式视图中的另一个视图控制器,并有一个button,当我点击对此我想去第一个视图控制器,而无需重新初始化它。 我该怎么做?

这是一个放松的过程完美的情况。

把它放在你的第一个viewController(你想要返回的那个):

@IBAction func backFromVC3(_ segue: UIStoryboardSegue) { print("We are back in VC1!") } 

然后在你的第三个viewController的Storyboard中, 控制你的button到viewController顶部的退出图标,并从popup窗口中selectbackFromVC3

现在,当用户按下VC3中的button时,VC3和VC2都将被解除,您将返回到VC1。


如果您不使用Storyboard,则可以使用代码closuresviewController。 这里是一个button的处理程序的代码,以消除两个级别的viewController:

 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) } 

感谢所有的答复和编辑我的问题:)

我发现2行代码来解决我的问题:

让appDelegate = UIApplication.sharedApplication()。委托为! AppDelegate appDelegate.window!.rootViewController?.dismissViewControllerAnimated(true,completion:nil)。

那很好。

非常感谢