2012-02-05 93 views
1

嗨我有一個tabview控制器中的viewcontroller。我決定使用NSNotification來標記tabview控制器中的視圖何時需要更新其數據。以前每個都有邏輯來決定數據模型的狀態並相應地更新。在視圖控制器之前調用的NSNotification被完全初始化

我的更新代碼調用了一些調用委託方法的東西。當不使用通知時,這些都是有效的。

我第一次嘗試通知似乎在視圖控制器初始化之前調用了選擇器(至少在viewDidload之前)。除此之外,當通知選擇器中的更新運行並且視圖控制器未更新時,從未調用委託方法。似乎視圖控制器處於未知狀態。

我運行了一個測試,並將相同的更新代碼放在viewDidLoad中,並且只在調用了viewDidLoad後才調用通知代碼。這工作。

我的問題是,是否有另一種方法來阻止在viewDidLoad之前調用通知選擇器方法,否則對象會被正確初始化。

我使用的分鏡,所以我不會編程的意見等

我希望這是明確的創作 - 發佈了一大堆的代碼不會過任何容易。

+2

你什麼時候註冊視圖控制器來接收通知? – jrturton 2012-02-05 10:02:09

+0

初始化視圖控制器時,爲什麼不總是調用更新代碼?然後註冊'NSNotification'專門用於視圖控制器已經初始化並需要更新的情況。 – 2012-02-05 13:35:11

回答

0

謝謝你們,都對!我在應用程序委託中設置了通知。我應該把它放在viewDidLoad的末尾。然後它只在有後續更新時被調用,並且我不需要一個標誌來阻止第一個通知在對象啓動並運行之前進行更新。

相關問題