当我尝试使用功能从其父视图控制器更新容器视图内容时。

更新初始ViewDidLoad集之后。该应用程序崩溃。
看来所有奥特莱斯都变成了零

最佳答案

您需要在容器视图中获得对视图控制器的引用,然后才能访问其所有出口。向容器视图控制器分配该序列号的序列号标识符,并在调用该序列号时获取引用。

例如,通过父视图控制器中的按钮更新容器视图控制器中的标签。

父视图控制器:

import UIKit

class ViewController: UIViewController {
     var containerVC : ContainerVC!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    }

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
    if (segue.identifier == "segueContainer")
        {
            containerVC = segue.destinationViewController as! ContainerVC
        }
    }


@IBAction func butUpdateContainerLabelAction(sender: AnyObject) {
    if containerVC != nil{
           containerVC.lblDemo.text = "some new text"
       }
    }

}


容器视图控制器

class ContainerVC: UIViewController {

@IBOutlet weak var lblDemo: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
   }
}

08-19 13:12