Я создал контроллер навигации с контроллером просмотра внутри, содержащий метку. Эту метку следует изменить, когда контроллер просмотра загружается при нажатии кнопки.UILabel Swift/Storyboard возвращает 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, поэтому я стараюсь изучить свои канаты в данный момент, используя опционные. Поэтому я предполагаю, что причина в том, что метка еще не создана при загрузке представления при нажатии кнопки. Поэтому отображается текст по умолчанию, а не текст, который я хочу отобразить на экране.
Я немного застрял на данный момент, как правильно изменить текст метки, когда это является необязательным. Поэтому, я думаю, я не могу ожидать, что ярлык будет там, когда я его назову. Но как я могу справиться с этим правильно?
Вы можете совместно использовать initViewController init? –