在我的测试应用程序中,我在标签栏控制器中嵌入了两个视图控制器(VC1和VC2)。每个视图控制器都有“跳转”按钮,可将我们移至第三个视图控制器(VC3):

 

在VC1中,我添加了功能

@IBAction func unwindFromVC3(segue: UIStoryboardSegue) {
    print("Unwind from VC3")
}


并将VC3的“保存”栏项与VC3的“退出”图标相连。

因此,当我运行我的应用程序并单击VC1的“跳转”按钮时,我移至VC3,而当我单击“保存”时,又移回了VC1。没关系。

如果我移至VC2栏并从此处单击“跳转”,则我再次移至VC3。但是,如果我从那里单击“保存”,则会再次移回VC1(而不是VC3)。

我期望那里什么都不会发生(因为我在VC2中没有任何“展开”功能)。那么,为什么我被转到VC1?是否可以为我的“保存”项目创建两个展开动作?

最佳答案

如果要从VC3退回到VC2,只需将unwindFromVC3也添加到VC2:

@IBAction func unwindFromVC3(segue: UIStoryboardSegue) {
    print("Unwind from VC3")
}


然后,展开序列将展开到正确的ViewController(已绑定到VC3的那个)。

您只需要设置一次展开序列,并且只要过渡到VC3的所有ViewController都实现unwindFromVC3,保存将返回到原始ViewController。

关于ios - 放任自流使我进入错误的 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36598698/

10-10 06:39