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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章