按特定顺序加载视图

时间:2013-11-24 06:05:29

标签: ios objective-c

我有一种特定的方式希望加载视图并让它们做事。在我的didFinishLaunchingWithOptions中,我加载了窗口:

[[self window] makeKeyAndVisible];

现在在视图控制器中,我需要询问用户的位置,但不是立即。我在视图控制器中有一个通知观察器来执行此操作。我使用nsnotification中心来做到这一点。在我的AppDelegate中,我在didFinishLaunchingWithOptions中发布了一个通知。

我的问题是,如果我在awakeFromNib方法中的视图控制器中添加一个观察者,在发布通知时是否仍会从didFinishLaunchingWithOptions方法调用它?我先调用[[self window] makeKeyAndVisible]然后发布通知。我担心的是,如果没有及早调用awakeFromNib并且观察者没有注册,我会发布通知。这会破坏用户的体验。

1 个答案:

答案 0 :(得分:0)

在视图控制器中包含需要通知才能工作的行为将是一个持续存在的问题。 iOS可能会选择卸载视图控制器,这会破坏系统。

我的建议是拥有一个处理这些通知的持久数据对象。 app委托可以更新数据对象,视图控制器可以从数据对象中读取,但不需要任何特定的加载顺序。