首页 文章

如何解除视图控制器链?

提问于
浏览
-1

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

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

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

3 回答

  • 1

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

    假设您有3个View控制器以模态方式打开 .

    A - 启动视图控制器

    A - > VC1

    VC1 - > VC2

    VC2 - > VC3

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

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

    P.S:使用presentViewController属性和你拥有的视图控制器一样多 . 在我的情况下,我写了3次因为我已经模态地呈现了3个视图控制器 .

  • 0

    您可以使用以下方法从 UINavigationController 实现此目的 -

    enter image description here

    Apple's Doc Reference

  • 0

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

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

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

    @IBAction func backToVC1(segue: UIStoryboardSegue) {
    
    }
    

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

    这将解散整个视图控制器并将您带回VC1

相关问题