【问题标题】:Preparing for segue in embedded tableView in Swift在 Swift 中为嵌入式 tableView 中的 segue 做准备
【发布时间】:2014-09-30 06:10:35
【问题描述】:

我有一个 UITableViewController,其中静态单元格通过情节提要嵌入到普通 ViewController 中。这是按预期工作的。但是,当我想在单击嵌入式 tableview 上的单元格时为 segue 做准备时,应用程序崩溃而没有真正的错误。

我有一个嵌入 UITableViewController 的类 TableViewVC 和一个嵌入它的类 RootVC。我要实现方法:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?);

我从 TableViewVC 中的特定静态单元格中创建了故事板中的转场。当我在 TableViewVC 中实现此方法时,它永远不会被调用。它确实在 RootVC 中被调用,但是当我尝试访问 segue.identifier 属性时崩溃。当我在这里调试应用程序时,我可以看到类型是 segue 是:

UIStoryboardEmbedSegue

有谁知道我可以如何正确地为这个 segue 做准备并访问标识符属性以了解单击了哪个单元格?

编辑:错误截图:http://cl.ly/image/2z031b2B3i0o

【问题讨论】:

  • 在应用崩溃时发布 Xcode 的屏幕截图。

标签: uitableview swift uistoryboardsegue


【解决方案1】:

UIStoryboardEmbedSegue 用于在 ViewControllers 中嵌入关系。它正在建立您的 RootVC 和 TableVC 之间的父子关系。它崩溃是因为您可能没有设置此特定 segue 的标识符。如果您对嵌入关系不感兴趣,则不应在 RootVC 中覆盖此函数。

您似乎没有正确设置单元格中的转场。如果您发布故事板的图片,我们可以查看。

另一种方法是从您的 TableVC(而不是单元格)中设置一个 segue,方法是控制从情节提要中 VC 顶部的黄色 VC 图标拖动到您想要的目的地。然后在didSelectRow 中以编程方式执行segue。

【讨论】:

  • 这确实是问题所在。我停止尝试使用故事板并使用您提到的 didSelectRow 方法修复它。非常感谢!
【解决方案2】:

我遇到了类似的问题。如果标识符在情节提要中留空,您将无法访问 segue.identifier

【讨论】:

  • 我的故事板中的 segue 肯定有一个标识符。我已经尝试删除 segue,清理项目并再次添加它。
猜你喜欢
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
相关资源
最近更新 更多