我有MainViewController
,其中有4 UIContainerViews
。
我在UIBarButtonItem
上有不同的MainViewController
,具体取决于显示的是ContainerView
。
当我单击UIBarButtonItem
时,我想与特定UIViewController
的{{1}}进行通信。
如何处理?
我尝试在子VC上使用UIContainerView
,但是没有用。此外,static func
,但最终是实例化的,没有得到显示的VC ...
答案 0 :(得分:1)
设置interfaceBuilder中每个容器序列的标识符。
为MainViewController类中的每个容器定义一个占位符:
class MainViewController: UIViewController {
var container1: UIViewController!
var container2: UIViewController!
var container3: UIViewController!
var container4: UIViewController!
```
}
prepare(for segue...
函数中为每个占位符分配实际值:class MainViewController: UIViewController {
```
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let identifier = segue.identifier else { return }
switch identifier {
case "Segue1": container1 = segue.destination
case "Segue2": container2 = segue.destination
case "Segue3": container3 = segue.destination
case "Segue4": container4 = segue.destination
default: return
}
}
}
现在您可以分别访问每个视图控制器。