我使用swift 3 for macOS,我有一个普遍的问题。 在我的Storyboard中有两个View Controller,每个View Controller都有一个tableview。
实施例: 视图控制器A&gt; VC_A.class <视图控制器B> VC_B.class
两个视图控制器都是一个拆分视图控制器的元素。 现在我想通过拖放将VC A中的一行元素放到VC B.如果两个VC都在一个类中,这样可以正常工作。
但现在我想像下面的例子(VC_A和VC_B.class)
那样拆分它但是如何在VC_B.class中控制VC_A的iboutlet tblview?
答案 0 :(得分:4)
您可以使用委托和协议。使用您的界面设置协议类以编辑表格,例如
protocol EditableTableView {
func insertCell()
}
对于两个ViewControllers,将它们设置为遵循此协议,实现insertCell函数并添加委托指针。
class ViewControllerA : EditableTableView {
func insertCell() {
... add your code to insert a cell into VC A...
}
weak var otherTableViewDelegate : EditableTableView?
}
class ViewControllerB : EditableTableView {
func insertCell() {
... add your code to insert a cell into VC B...
}
weak var otherTableViewDelegate : EditableTableView?
}
在父分割VC中,您可以设置委托指针,使它们指向另一个视图控制器
viewControllerA.otherTableViewDelegate = viewControllerB
viewControllerB.otherTableViewDelegate = viewControllerA
现在,只要您想在另一个控制器中插入一个单元格,就可以调用
self.otherTableViewDelegate?.insertCell()