2015-06-05 47 views
2

我创建了一个带有视图控制器的导航控制器,其中包含一个标签。当按下按钮加载视图控制器时,应更改此标签。UILabel Swift/Storyboard返回零

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来说是比较新的,所以我现在尝试使用可选项来学习我的绳索。所以我想原因是,当按下按钮加载视图时,标签还没有实例化。因此显示的是默认文本,而不是我想要在屏幕上显示的文本。

我现在有点卡住了,如何正确更改标签文本,何时这是可选的。所以我想我不能期望标签在那里,当我打电话时。但是,我如何正确处理这个问题?

+0

你能分享EmergencyViewController init吗? –

回答

2

取而代之,正确的方法是设置您的emergencyViewController的属性。

在您的emergencyViewController viewDidLoad根据之前设置的属性设置您的标签文本。

你在viewController初始化到viewDidLoad之间所做的任何操作都不会生效。