我在 macOS 上使用 swift 3,我有一个一般性问题。
在我的 Storyboard中有两个 View Controller ,每个 View Controller 都有一个表格 View 。
例子:
查看 Controller A > VC_A.class
查看 Controller B > VC_B.class
两个 View Controller 都是一个 Split View Controller 的元素。
现在我想通过拖放将一行元素从 VC A 放到 VC B 中。这很好用,如果两个 VC 都在一个类中。
但现在我想像下面的例子一样拆分它(VC_A 和 VC_B.class)
但是如何控制 VC_B.class 中 VC_A 的 iboutlet tblview?
最佳答案
您可以为此使用委托(delegate)和协议(protocol)。使用您的界面设置协议(protocol)类以编辑表格,例如
protocol EditableTableView {
func insertCell()
}
对于您的两个 ViewController,将它们设置为遵守此协议(protocol),实现 insertCell 函数并添加一个委托(delegate)指针。
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 中,您可以设置委托(delegate)指针,以便它们指向另一个 View Controller
viewControllerA.otherTableViewDelegate = viewControllerB
viewControllerB.otherTableViewDelegate = viewControllerA
现在,每当您想在另一个 Controller 中插入一个单元格时,您都可以调用
self.otherTableViewDelegate?.insertCell()
关于macos - 不同的类(class)一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198111/