viewDidLoad方法和通知中心

时间:2015-03-20 16:22:08

标签: ios swift nsnotificationcenter

我有两个视图控制器。我需要从第一个更新第二个视图控制器的ui。我把这一行放在第二个视图控制器中:

override func viewDidLoad() {
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "actOnSpecialNotification:", name: mySpecialNotificationKey, object: nil)
}

这是一个标签系统,第一个视图控制器显示第一个标签,第二个视图控制器显示第二个标签。

以下是一些代码: enter image description here

我在这里得到了一个例外: enter image description here

如果用户没有按下第二个标签viewDidLoad方法未启用,则无法更新ui。如何解决此问题?

1 个答案:

答案 0 :(得分:0)

您需要在控制器的init方法中添加观察者(如果控制器来自xib或故事板,则需要在awakeFromNib中)。当标签栏控制器首次启动时,仅在第一个选项卡中为控制器调用viewDidLoad。在您单击其选项卡之前,不会调用其他控制器的viewDidLoad。