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 开发应用程序
- segue 连接到父视图控制器?你需要使用segue吗?
-
Wain - 让我澄清一下......我想根据嵌入式 UITableViewController 中的单元格的点击从 ListViewController 推送另一个视图(让我们称之为 "DetailListViewController")
您应该在嵌入式表格视图控制器和您的 ListViewController 之间建立委托关系,以便在点击嵌入式表格单元格时触发委托回调。回调处理程序(ListViewController 的一部分)然后可以触发 segue。
所以嵌入式表格视图控制器有一个可以设置的委托属性,ListViewController实现了委托协议。
- 我将如何设置这样的委托和"回调"也许是一个代码示例?我以前没有使用过容器视图(对不起,如果这是一个基本问题!)
-
容器视图无关紧要,它是 2 个控制器之间的关系。我现在并没有真正做 swift,你想要一个 swift 示例,所以你需要寻找一个通用的 swift 委托教程。
-
谢谢Wain :) 只是为了澄清一下,我需要为包含视图创建一个类来链接这一切正确吗?
-
您需要创建一个协议,但您不需要额外的类,并且视图根本不会改变。 ListViewController 将自身添加为嵌入式控制器的代表(我猜它已经添加到代码中了?)
-
我正在使用情节提要,因此在我知道的代码中没有添加任何代表
-
ListViewController 有嵌入式控制器的出口吗?希望嵌入式控制器是一个孩子而不是隐藏在容器视图中?
-
我已经按照本教程添加了容器视图:mikebobiney.com/2014/09/28/static-table-view-containers
-
对于其他试图解决这个问题的人,我发现这个链接很容易解释如何设置委托协议和方法......以及它在 Swift 中! :) makeapppie.com/2014/07/01/…
我在 Github 上有一个名为 "Test"(链接)的项目,它展示了如何在容器视图中设置静态表视图并连接表视图控制器与其父视图控制器之间的双向通信。
它是用 Objective-C 编写的,但技术在 Swift 中是相同的。
您设置了表视图控制器用来与其父视图控制器通信的协议。
您使用嵌入 segues 将父级中的容器视图连接到子表视图控制器。
您在父视图控制器中添加一个 prepareForSegue 方法,该方法将父视图控制器设置为子视图的委托(您不能使用属性名称"delegate",因为它已被使用;使用类似"parentVCDelegate")
然后当用户点击表格视图中的一个单元格时,它的视图控制器会向父级发送消息。
将 segue 连接到容器中的表。不要担心它会自动找到父导航控制器。