Unwind segue 在 Swift 3 和 iOS 10 中不起作用

Posted

技术标签:

【中文标题】Unwind segue 在 Swift 3 和 iOS 10 中不起作用【英文标题】:Unwind segue doesn't work in Swift 3 and iOS 10 【发布时间】:2016-10-07 11:14:06 【问题描述】:

我正在尝试在 ios 10 和 Swift 3 中测试 unwind segue。

我做了一个这样的简单应用程序:

我在 TableViewController 类中添加 segue 代码并连接“取消”按钮并在表视图控制器场景上退出:

@IBAction func unwindToRootViewController(segue: UIStoryboardSegue) 
    print("Unwind to Root View Controller")

但我的简单转场不起作用。我做错了什么?

【问题讨论】:

如果你在segue 之前添加一个 _ 会发生什么情况:@IBAction func unwindToRootViewController(_ segue: UIStoryboardSegue)(然后你可能需要在 Interface Builder 中重新连接你的 segue) @pbodsk 我尝试了两个:_segue_ segue,但它不起作用。我的教育项目有同样的问题:github.com/IlyaGutnikov/SwiftStoryBoardsTutorial 哦...我刚刚注意到您说您在TableViewController 中添加了segue 的代码,不应该在“外部”ViewController 中吗? (看看这里:spin.atomicobject.com/2014/10/25/ios-unwind-segues) @pbodsk 是的,你是对的。我不得不将 segue 代码添加到我的ViewController。谢谢! 不客气,我会冒昧地在结果中添加答案,好吗? 【参考方案1】:

从上面的 cmets 中可以看出,问题是这样的:

我在 TableViewController 类中添加 segue 代码

展开转场必须在你的“外部”ViewController,而不是TableViewController

This article 很好地介绍了 unwind segues。

【讨论】:

我正在将一些工作的 objc 代码移植到 swift 中,但我的 unwind segue 没有一个起作用。您在上述问题中的第一条评论是我的问题的解决方案,因为我的方法签名中缺少“_”。有时单字符错误是最难发现的。谢谢。 不客气,是的,有时您会在一个问题上花费数小时,最终解决方案是在正确的位置添加一个字符...编程嗯¯_(ツ)_/¯

以上是关于Unwind segue 在 Swift 3 和 iOS 10 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Unwind segue 不起作用 SWIFT

Swift 以编程方式创建一个 unwind segue

iOS - 如何在 Unwind Segue 中控制动画类型?

Unwind Segue - 将出口拖到哪里?

Unwind segue - 返回多个视图

在 unwind segue 之后执行 push segue