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 初始化之间所做的任何操作都不会生效。