在 Xcode7 - beta 5 和 storyboard 中展开 segue

Posted

技术标签:

【中文标题】在 Xcode7 - beta 5 和 storyboard 中展开 segue【英文标题】:Unwind segue in Xcode7 - beta 5 and storyboard 【发布时间】:2015-08-25 18:07:32 【问题描述】:

我在 Swift 2 中有一个项目,其中两个表视图控制器嵌入在两个导航控制器中,中间有 segue。

简单地说:表格视图 A -> 表格视图 B

表格视图 A 中有一个 + 按钮,以模态方式连接到表格视图 B。 表视图 B 中有一个后退按钮,它应该展开回到表视图 A。

我在目标视图控制器(我想放松的地方)中创建了 @IBAction func unwindFromSegue(segue: UIStoryboardSegue) 函数。

我已经用 ctrl+drag 将 Back 按钮连接到 Table View B 的出口(并连接到 unwindFromSegue 函数)。

但是完全没有展开转场 :( 只需单击“后退”按钮不会做任何事情。

有什么问题?

【问题讨论】:

我自己终于弄明白了(两天后)。我的表视图 A 未附加到我的自定义视图控制器。相反,它使用了默认的 UITableViewController(我的展开功能不存在)。我怎么会错过它......无论如何:在将两个自定义视图控制器类附加到两个视图控制器之后似乎已经解决了这个问题。 【参考方案1】:

我在 Swift 2 中有一个项目,其中两个表视图控制器嵌入在两个导航控制器中,中间有 segue。

你的问题就在那里。为了能够推送和弹出(展开),它们需要在相同导航控制器中,而不是两个不同的导航控制器中。你根本不应该使用任何 unwind segue:你应该有

navigation controller -> table view 1 -> (push) table view 2

导航栏中的后退按钮将正常工作。

【讨论】:

以上是关于在 Xcode7 - beta 5 和 storyboard 中展开 segue的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7 beta 5、Swift 2:UITableViewCell 的子视图在运行时未添加到 contentView

Xcode 7 beta (5 & 6) 看不到某些 VC 的 IBOutlets

swift 2.0(XCode 7 beta 5)中的拆分方法

MagicalRecord saveWithBlock 用法现在无法在 XCode 7 beta 5 下编译

El Capitan XCode7.0.1 和 XCode7.1Beta 中的游乐场错误

Xcode7 Beta 6 - 应用商店提交时 WatchKit 支持无效