不同的 类 一起工作
Different classes work together
我在 macOS 上使用 swift 3,我有一个一般性问题。
在我的 Storyboard 中有两个 View Controller,每个 View Controller 都有一个 tableview。
示例:
查看控制器 A > VC_A.class
查看控制器 B > VC_B.class
两个视图控制器都是一个拆分视图控制器的元素。
现在我想通过拖放将一行元素形式 VC A 放到 VC B 中。如果 VC 在一个 class.
中,这很好用
但现在我想像下面的示例那样拆分它(VC_A 和 VC_B.class)
但是我如何控制 VC_B.class 中 VC_A 的 iboutlet tblview?
您可以为此使用委托和协议。使用您的界面设置协议 class 以编辑表格,例如
protocol EditableTableView {
func insertCell()
}
对于您的两个 ViewController,将它们设置为遵守此协议,实现 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()
我在 macOS 上使用 swift 3,我有一个一般性问题。 在我的 Storyboard 中有两个 View Controller,每个 View Controller 都有一个 tableview。
示例: 查看控制器 A > VC_A.class 查看控制器 B > VC_B.class
两个视图控制器都是一个拆分视图控制器的元素。 现在我想通过拖放将一行元素形式 VC A 放到 VC B 中。如果 VC 在一个 class.
中,这很好用但现在我想像下面的示例那样拆分它(VC_A 和 VC_B.class)
但是我如何控制 VC_B.class 中 VC_A 的 iboutlet tblview?
您可以为此使用委托和协议。使用您的界面设置协议 class 以编辑表格,例如
protocol EditableTableView {
func insertCell()
}
对于您的两个 ViewController,将它们设置为遵守此协议,实现 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()