我有一个UIViewController的子类/uff0c我定义了一个这样的变量/uff1a
public class CustomController: UIViewController {
@IBOutlet weak var slider:UISlider!
public var showSlider = false {
didSet {
slider.isHidden = !showSlider
}
}
...
...
}
现在/uff0c如果我实例化我的自定义视图控制器/uff0c如下所示/uff1a
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "CustomController") as! CustomController
controller.showSlider = true
问题是即使在设置viewDidLoad或IBOutlets之前/uff0c也可以调用第二行。如何处理这样的情况呢
应该是这样的/uff1a
用showSlider = true
控制器的viewDidLoad
方法调用/uff0c像这样/uff1a
public class CustomController: UIViewController {
@IBOutlet weak var slider:UISlider!
public var showSlider = false {
didSet {
slider.isHidden = !showSlider
}
}
override func viewDidLoad() {
super.viewDidLoad()
showSlider = true
}
...
...
}