我遇到这种情况:
我有一个第一个视图控制器,当点击按钮时我在模态模式下打开另一个视图控制器,在这个视图控制器中我点击另一个按钮我在模态视图中打开另一个视图控制器并在其中有一个按钮和当我点击它时,我想转到第一个视图控制器而不重新初始化它。 我该怎么做?
答案 0 :(得分:5)
这是 unwind segue 的完美情况。
将它放在你的第一个viewController(你想要返回的那个)中:
for
然后在第3个viewController的Storyboard中, control -drag从你的按钮到viewController顶部的退出图标,然后从弹出窗口中选择@IBAction func backFromVC3(_ segue: UIStoryboardSegue) {
print("We are back in VC1!")
}
。
现在,当用户按下VC3中的按钮时,VC3和VC2都将被解除,您将返回VC1。
如果您没有使用Storyboard,可以使用代码关闭viewControllers。这是一个按钮处理程序的代码,用于关闭两个级别的viewController:
backFromVC3
答案 1 :(得分:0)
感谢大家的回复并编辑了我的问题:)
我找到了2行代码来解决我的问题:
让appDelegate = UIApplication.sharedApplication()。委托为! AppDelegate中 appDelegate.window!.rootViewController?.dismissViewControllerAnimated(true,completion:nil)。
这很有效。
非常感谢