具有MainViewController,如何与MainVC中的实际UIContainerViews通信?

时间:2019-07-16 18:09:11

标签: ios swift uiviewcontroller uicollectionview

我有MainViewController,其中有4 UIContainerViews

我在UIBarButtonItem上有不同的MainViewController,具体取决于显示的是ContainerView

当我单击UIBarButtonItem时,我想与特定UIViewController的{​​{1}}进行通信。

如何处理?

我尝试在子VC上使用UIContainerView,但是没有用。此外,static func,但最终是实例化的,没有得到显示的VC ...

1 个答案:

答案 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
        }
    }
}

现在您可以分别访问每个视图控制器。