ViewController 中嵌入的 ContainerView:插座为零
ContainerView embedded in ViewController: Outlets are nil
因为我正在尝试使用一个函数从其父视图控制器更新容器视图内容。
更新初始 ViewDidLoad 集后。应用程序崩溃。
似乎所有的奥特莱斯都变成了零
您需要在容器视图中获取对视图控制器的引用,然后您应该可以访问它的所有出口。为容器视图控制器的 segue 分配一个 segue 标识符,并在调用 segue 时获取引用。
例如,从父视图控制器中的按钮更新容器视图控制器中的标签。
父视图控制器:
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.
}
}
因为我正在尝试使用一个函数从其父视图控制器更新容器视图内容。
更新初始 ViewDidLoad 集后。应用程序崩溃。 似乎所有的奥特莱斯都变成了零
您需要在容器视图中获取对视图控制器的引用,然后您应该可以访问它的所有出口。为容器视图控制器的 segue 分配一个 segue 标识符,并在调用 segue 时获取引用。
例如,从父视图控制器中的按钮更新容器视图控制器中的标签。
父视图控制器:
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.
}
}