在Swift 3和iOS 10中,反向转场不起作用。

10

我正在尝试在iOS 10和Swift 3中测试解开Segue。

我制作了一个简单的应用程序,如下所示: 输入图像描述

输入图像描述

我在TableViewController类中添加了Segue代码,并将“Cancel”按钮和退出连接到表视图控制器场景:

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

但是我的简单过渡效果不起作用,我做错了什么?


如果在 segue 前面添加一个下划线 _,会发生什么呢?就像这样:@IBAction func unwindToRootViewController(_ segue: UIStoryboardSegue)(然后您可能需要在 Interface Builder 中重新连接您的 segue)。 - pbodsk
@pbodsk 我尝试了 _segue_ segue 两种方式,但都没有成功。我的教育项目也遇到了同样的问题:https://github.com/IlyaGutnikov/SwiftStoryBoardsTutorial - IlyaGutnikov
哦...我刚刚注意到你说你已经在你的TableViewController中添加了segue代码,难道不应该在“外部”的ViewController中吗?(可以看这里:https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/) - pbodsk
@pbodsk 是的,你说得对。我必须在我的“ViewController”中添加segue代码。谢谢! - IlyaGutnikov
不用谢,我会自作主张地添加一个带有结果的答案,好吗? - pbodsk
@pbodsk 当然可以。 - IlyaGutnikov
1个回答

10

如上面的评论所述,问题就在于:

我在TableViewController类中添加了segue代码。

回 unwind segue 必须放在你的“外部” ViewController 而不是 TableViewController 中。

这篇文章非常好地介绍了回 unwind segues。


我正在将一些可用的 Objective-C 代码移植到 Swift,但我的所有 unwind segue 都无法正常工作。你在上面的问题中的第一个评论是解决我的问题的方法,因为我在我的方法签名中缺少了“_”。有时候单个字符的错误是最难找到的。谢谢。 - Chuck H
非常欢迎,有时候你会花费数小时来解决一个问题,而最终的解决方案只是在恰到好处地添加了一个字符...编程嘛 ¯_(ツ)_/¯ - pbodsk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接