2013-11-24 75 views
0

我有一個具體的方式,我希望加載視圖並讓它們做事。在我的didFinishLaunchingWithOptions我加載窗口:按特定順序加載視圖

[[self window] makeKeyAndVisible]; 

現在視圖控制器裏面,我需要詢問用戶的位置,但不會立即進行。我在視圖控制器裏面有一個通知觀察者來做這件事。我使用nsnotification中心來做到這一點。在我的AppDelegate中,我在didFinishLaunchingWithOptions中發佈了一個通知。

我的問題是,如果我添加一個觀察者在awakeFromNib方法裏面的view controller中,當通知被髮布時它仍然會從didFinishLaunchingWithOptions方法中調用嗎?我首先調用[[self window] makeKeyAndVisible],然後發佈通知。我擔心的是如果awakeFromNib沒有被提前調用並且觀察者沒有被註冊,我會發佈一個通知。這會毀了用戶的體驗。

回答

0

在視圖控制器中包含需要通知才能工作的行爲將是一個持續存在的問題。 iOS可能會選擇卸載視圖控制器,這會破壞系統。

我的建議是有一個持久的數據對象來處理這些通知。應用程序委託可以更新數據對象,並且視圖控制器可以從數據對象讀取,但不需要任何特定的加載順序。