我有一组视图控制器VC1,VC2,VC3,VC4 . VC2有多个入口点,可以模态呈现或推送到导航控制器上 .
目前我在VC1 . 在某些动作上,我以模态方式呈现VC2 . VC2中的一些后续操作将我带到VC3-> VC4 . VC4中有一个按钮,可以将我带回VC1 .
我该如何以简单的方式实现这一点?一种方法是通过代表实现它 . 但是我需要在路径中的每个视图控制器中设置它吗?
我想没有必要设置任何代表 . 我已经在你的问题上做了演示,我找到了一个解决方案 .
假设您有3个View控制器以模态方式打开 .
A - 启动视图控制器
A - > VC1
VC1 - > VC2
VC2 - > VC3
只需在按钮水龙头上写下这一行 .
self.presentingViewController?.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
P.S:使用presentViewController属性和你拥有的视图控制器一样多 . 在我的情况下,我写了3次因为我已经模态地呈现了3个视图控制器 .
您可以使用以下方法从 UINavigationController 实现此目的 -
UINavigationController
Apple's Doc Reference
使用展开segues(如果您使用的是故事板)!
在Apple文档中阅读它并在线查找一些示例 . 你的场景非常适合这个 .
把它放在你的VC1 viewController(你要返回的那个)中:
@IBAction func backToVC1(segue: UIStoryboardSegue) { }
然后在上一个viewcontroller的Storyboard中,从按钮控制拖动到viewController顶部的退出图标,然后从弹出窗口中选择backToVC1 .
这将解散整个视图控制器并将您带回VC1
3 回答
我想没有必要设置任何代表 . 我已经在你的问题上做了演示,我找到了一个解决方案 .
假设您有3个View控制器以模态方式打开 .
A - 启动视图控制器
A - > VC1
VC1 - > VC2
VC2 - > VC3
只需在按钮水龙头上写下这一行 .
您可以使用以下方法从
UINavigationController
实现此目的 -Apple's Doc Reference
使用展开segues(如果您使用的是故事板)!
在Apple文档中阅读它并在线查找一些示例 . 你的场景非常适合这个 .
把它放在你的VC1 viewController(你要返回的那个)中:
然后在上一个viewcontroller的Storyboard中,从按钮控制拖动到viewController顶部的退出图标,然后从弹出窗口中选择backToVC1 .
这将解散整个视图控制器并将您带回VC1