iOS - 我可以在容器视图中基于点击触发 segue 吗?

iOS - Can I trigger a segue based on tap in container view?

我设置了一个名为 ListViewController 的 UITableViewController(它实际上是一个 Parse.com PFQueryTableViewController,但这是顺便说一句)并且位于 UITableView 的顶部我有一个 Container View,其中嵌入了一个 UITableViewController

嵌入式 UITableViewController 中有几个静态单元格。我想做的是,当用户点击 embedded 中的一个单元格时, 触发从 ListViewController 到另一个视图(导航推送)的 segue UITableViewController.

我看到了关于在视图之间传递信息的其他问题,但这是专门针对我如何触发 segue 的。

注意:我正在 Swift

开发应用程序

您应该在嵌入式 table 视图控制器和您的 ListViewController 之间设置委托关系,以便在点击嵌入式 table 单元格时触发委托回调。回调处理程序(ListViewController 的一部分)然后可以触发 segue。

所以嵌入式table视图控制器有一个delegate属性可以设置,ListViewController实现了delegate协议

我有 a project on Github called "Test" (link) 展示了如何在容器视图中设置静态 table 视图并连接 table 视图之间的双向通信控制器及其父视图控制器。

写在Objective-C,但技巧在Swift中是一样的。

您设置了 table 视图控制器用来与其父视图控制器通信的协议。

您使用嵌入 segues 将父容器视图连接到子 table 视图控制器。

您在父视图控制器中添加一个 prepareForSegue 方法,将父视图控制器设置为子视图的委托(您不能使用 属性 名称 "delegate",因为它已被使用;使用像 "parentVCDelegate")

然后当用户点击 table 视图中的单元格时,它的视图控制器会向父级发送消息。

将 segue 连接到容器中的 table。不要担心它会自动找到父导航控制器。