UILabel Swift/Storyboard returns 无
UILabel Swift/Storyboard returns nil
我创建了一个导航控制器,里面有一个视图控制器,包含一个标签。当通过点击按钮加载视图控制器时,应更改此标签。
class ViewController: UIViewController {
@IBOutlet weak var btnEmergency: UIButton!
override func viewWillAppear(animated: Bool) {
self.btnEmergency.backgroundColor = UIColor.redColor();
}
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnEmergencyTapped(sender: AnyObject) {
let emergencyViewController = storyboard?.instantiateViewControllerWithIdentifier("EmergencyViewController") as! EmergencyViewController
emergencyViewController.emergencyLabel?.text = "Notruf"
navigationController?.pushViewController(emergencyViewController, animated: true)
}
}
但是加载时标签文本没有改变。我对 SWIFT 比较陌生,所以我现在尝试使用可选参数来学习我的技巧。所以我想原因是,当按下按钮加载视图时,标签尚未实例化。因此显示的是默认文本,而不是我想要显示在屏幕上的文本。
我现在有点卡住了,如何正确更改标签文本,这是可选的。所以我想当我调用它时,我不能指望标签在那里。但是我该如何正确处理呢?
取而代之的是,正确的方法是设置一个 属性 的 emergencyViewController。
在您的 emergencyViewController viewDidLoad
中,根据之前设置的 属性 设置您的标签文本。
您在 viewController 到 viewDidLoad
初始化之间所做的任何操作都不会生效。
我创建了一个导航控制器,里面有一个视图控制器,包含一个标签。当通过点击按钮加载视图控制器时,应更改此标签。
class ViewController: UIViewController {
@IBOutlet weak var btnEmergency: UIButton!
override func viewWillAppear(animated: Bool) {
self.btnEmergency.backgroundColor = UIColor.redColor();
}
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnEmergencyTapped(sender: AnyObject) {
let emergencyViewController = storyboard?.instantiateViewControllerWithIdentifier("EmergencyViewController") as! EmergencyViewController
emergencyViewController.emergencyLabel?.text = "Notruf"
navigationController?.pushViewController(emergencyViewController, animated: true)
}
}
但是加载时标签文本没有改变。我对 SWIFT 比较陌生,所以我现在尝试使用可选参数来学习我的技巧。所以我想原因是,当按下按钮加载视图时,标签尚未实例化。因此显示的是默认文本,而不是我想要显示在屏幕上的文本。
我现在有点卡住了,如何正确更改标签文本,这是可选的。所以我想当我调用它时,我不能指望标签在那里。但是我该如何正确处理呢?
取而代之的是,正确的方法是设置一个 属性 的 emergencyViewController。
在您的 emergencyViewController viewDidLoad
中,根据之前设置的 属性 设置您的标签文本。
您在 viewController 到 viewDidLoad
初始化之间所做的任何操作都不会生效。