ios - Unwind Segue 将我移至错误的 View Controller

标签 ios swift segue unwind-segue

在我的测试应用程序中,我在选项卡栏 Controller 中嵌入了两个 View Controller (VC1 和 VC2)。每个 View Controller 都有“跳转”按钮,将我们移动到第三个 View Controller (VC3):

my storyboard

在VC1中我添加了函数

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

并将VC3的“Save”栏项与VC3的“Exit”图标连接起来。

因此,当我运行我的应用程序并单击 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 - Unwind Segue 将我移至错误的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36598698/

相关文章:

ios - 无法在 xcode 中构建我的新 react-native 项目 - 获取配置文件配置错误

ios - 快速将 UILabel 添加到 UITextView

swift - 为什么我的prepareForSegue代码激活了错误的按钮?

objective-c - 更新 "while loop"中的 UILabel

android - Appcelerator 5.1.2 GA ( iOS, Android ) 的 Paypal 模块

ios - 如何使从 Firebase 数据库检索的值作为 Swift 中的变量?

objective-c - 从 tableview 中的 2 个部分推送 segue 不起作用

arrays - '? :' 表达式中的结果值具有不匹配的类型 'productsList' 和 'String'

ios - 一个以 three20 包装 UI 类的方式包装 iOS 动画的库

swift - SpriteKit - 节点不添加到 SKCameraNode - Swift