放松segue将我移动到错误的视图控制器

时间:2016-04-13 12:39:57

标签: ios swift segue unwind-segue

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

my storyboard

在VC1中我添加了功能

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

并连接VC3的“保存”栏项目和VC3的“退出”图标。

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

如果我移动到VC2栏并从那里点击“跳转”,我再次移动到VC3。但如果我从那里点击“保存”,我又回到了VC1(而不是VC3)。

我预计没有任何事情发生(因为我在VC2中没有任何“展开”功能)。那么为什么我被转移到VC1?是否可以为我的“保存”项创建两个展开动作?

1 个答案:

答案 0 :(得分:1)

如果您想从VC3中退回到VC2,只需将unwindFromVC3添加到VC2:

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

然后unwind segue将展开到正确的ViewController(一个隐藏到VC3的那个)。

您只需设置一次展开segue,只要转换到VC3的所有ViewControllers都实现unwindFromVC3,保存就会返回到原始的ViewController。