viewDidLoad 方法和通知中心

viewDidLoad method and Notification center

我有两个视图 controller.I 需要从 first.I 更新第二个视图控制器的 ui 将此行放在第二个视图控制器中:

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

这是一个选项卡系统,第一个视图控制器显示第一个选项卡,第二个视图控制器显示第二个选项卡。

下面是一些代码:

我在这里遇到了一个例外:

当应用程序启动时,如果用户没有按第二个选项卡 viewDidLoad 方法没有调用,我无法更新 ui.How 我可以解决这个问题吗?

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