【问题标题】:Unwind segue moves me to wrong view controllerUnwind segue 将我移动到错误的视图控制器
【发布时间】:2016-04-13 12:39:56
【问题描述】:

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

在VC1中我添加了函数

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

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

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

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

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

【问题讨论】:

  • 当用户从 VC2->VC3 转换然后点击“保存”时,您希望发生什么?
  • 在真正的应用程序中用户将能够在 VC3 中编辑一些对象的详细信息。因此,当用户点击保存时,应保存详细信息并将用户返回到 VC2。
  • 在下面查看我的答案。

标签: ios swift segue unwind-segue


【解决方案1】:

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

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

然后展开转场将展开到正确的 ViewController(转场到 VC3 的那个)。

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

【讨论】:

  • 哦,我明白了。谢谢!
猜你喜欢
  • 2015-02-13
  • 1970-01-01
  • 2013-04-06
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 2023-03-31
相关资源
最近更新 更多