【问题标题】:Unwind segue doesn't work in Swift 3 and iOS 10Unwind segue 在 Swift 3 和 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。谢谢!
  • 不客气,我会冒昧地在结果中添加答案,好吗?

标签: ios swift swift3 segue unwind-segue


【解决方案1】:

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

我在 TableViewController 类中添加 segue 代码

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

This article 很好地介绍了 unwind segues。

【讨论】:

  • 我正在将一些工作的 objc 代码移植到 swift 中,但我的 unwind segue 没有一个起作用。您在上述问题中的第一条评论是我的问题的解决方案,因为我的方法签名中缺少“_”。有时单字符错误是最难发现的。谢谢。
  • 不客气,是的,有时您会在一个问题上花费数小时,最终解决方案是在正确的位置添加一个字符...编程嗯¯_(ツ)_/¯
猜你喜欢
  • 1970-01-01
  • 2014-10-28
  • 2015-06-09
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多