解雇两个控制器Swift

gia*_*nni 1 ios swift

我有这种情况:

我有一个第一个视图控制器,当点击按钮在它我打开模态模式另一个视图控制器,在这个视图控制器当我点击另一个按钮我打开模态视图另一个视图控制器,并在其中有一个按钮,当我点击在它上面我想去第一个视图控制器而不重新初始化它.我该怎么做?

vac*_*ama 5

这是一个放松segue的完美情况.

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

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

然后在第3个viewController的Storyboard中,control从你的按钮拖动到viewController顶部的退出图标,然后backFromVC3从弹出窗口中选择.

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


如果您不使用Storyboard,则可以使用代码关闭viewControllers.这是一个按钮处理程序的代码,用于关闭两个级别的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)
}
Run Code Online (Sandbox Code Playgroud)