2011-08-17 59 views
0

我目前正在開發一個iPhone應用程序,通過REST與Web服務器進行通信。iOS - 在applicationDidBecomeActive中更新視圖控制器

每次應用程序啓動時,它都會檢查遠程數據更新。如果數據尚未加載,我會在應用程序代理applicationDidBecomeActive中啓動異步請求,並在請求運行時顯示模式進度視圖。我的一些視圖控制器也需要數據更新,應該在相同的進度視圖可見並且第一個請求完成後處理。

處理這種情況的最佳方法是什麼?在第一個請求完成後向視圖控制器發佈通知,並回叫委託以關閉進度視圖? 或者這被認爲是一個不好的解決方案?如果發送者不知道任何有關(不應該依賴於)觀察員

問候

卡斯滕

回答

1

發佈的通知應使用。例如,數據對象在發生更改時發佈通知,因此與其連接的可視對象可能會自行更新。

在你的情況下,你需要有一個根對象,視圖控制器的所有者。它可能是您的應用程序委託或導航控制器的子類。由於所有者知道視圖控制器,它可以直接告訴他們在請求完成時更新。

通常,不要在所有者及其家屬之間發送通知。業主可以直接調用家屬的方法。依賴者可能與他們的所有者存在薄弱的聯繫,並在更新時告訴他們。如果您需要使依賴者獨立於所有者的類,請定義一個委託協議。

+0

Thanx爲您的答案。我現在使用通知來更新其他視圖控制器。 – SamVimes