如何解除视图控制器链?

时间:2015-05-29 05:28:12

标签: ios swift uiviewcontroller

我有一组视图控制器VC1,VC2,VC3,VC4。 VC2有多个入口点,可以模态显示或推送到导航控制器上。

目前我在VC1。在某些动作上,我以模态方式呈现VC2。 VC2中的一些后续操作将我带到VC3-> VC4。 VC4中有一个按钮,可以将我带回VC1。

如何以简单的方式实现这一点?一种方法是通过代表实现它。但是我需要在路径中的每个视图控制器中设置它吗?

3 个答案:

答案 0 :(得分:1)

使用展开segues(如果您使用的是故事板)!

在Apple文档中阅读并在线查找一些示例。你的场景非常适合这个。

将它放在你的VC1 viewController(你想要返回的那个)中:

@IBAction func backToVC1(segue: UIStoryboardSegue) {

}

然后在上一个viewcontroller的Storyboard中,通过控制 - 从按钮拖动到viewController顶部的退出图标,然后从弹出窗口中选择backToVC1。

这将关闭整个视图控制器堆栈并将您带回VC1

答案 1 :(得分:0)

您可以使用以下方法从UINavigationController -

实现此目的

enter image description here

Apple's Doc Reference

答案 2 :(得分:0)

我想没有必要设置任何代表。我已经根据你的问题做了演示,我找到了一个解决方案。

假设您有3个以模态方式打开的视图控制器。

A - 启动视图控制器

A - > VC1

VC1 - > VC2

VC2 - > VC3

只需在按钮水龙头上写下这行。

 self.presentingViewController?.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
  

P.S:使用presentsViewController属性尽可能多的视图控制器   你有。在我的情况下,我写了3次,因为我有模态   提出了3个视图控制器。