关于 uitableview:iOS – 我可以根据容器视图中的点击触发 segue 吗?

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

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

嵌入的 UITableViewController 中有几个静态单元格。我想做的是,当用户点击嵌入式 UITableViewController.

中的一个单元格时,触发从 ListViewController 到另一个视图(导航推送)的转场

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

注意:我正在用 Swift 开发应用程序


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

所以嵌入式表格视图控制器有一个可以设置的委托属性,ListViewController实现了委托协议。


我在 Github 上有一个名为 "Test"(链接)的项目,它展示了如何在容器视图中设置静态表视图并连接表视图控制器与其父视图控制器之间的双向通信。

它是用 Objective-C 编写的,但技术在 Swift 中是相同的。

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

您使用嵌入 segues 将父级中的容器视图连接到子表视图控制器。

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

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


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