當我加載不同的視圖和檢索數據時,我的應用程序需要一個活動指示器視圖。問題是主VC(我將放置指示器的位置)並不總是知道何時處理正在發生,因此它可以啓動指示器,但無法停止它。在整個應用程序中擁有一個ActivityIndicator的好設計
例如主要的VC加載,然後編程添加一個新的VC - 這個VC依次要求一個模型來檢索 - 它顯示數據等等。因此,這個新添加的VC實際上知道何時處理完成並且它不能訪問指示器視圖(儘管指標在頂部可見)。
我在考慮使用通知 - 這是處理這種情況的最佳方法嗎?
當我加載不同的視圖和檢索數據時,我的應用程序需要一個活動指示器視圖。問題是主VC(我將放置指示器的位置)並不總是知道何時處理正在發生,因此它可以啓動指示器,但無法停止它。在整個應用程序中擁有一個ActivityIndicator的好設計
例如主要的VC加載,然後編程添加一個新的VC - 這個VC依次要求一個模型來檢索 - 它顯示數據等等。因此,這個新添加的VC實際上知道何時處理完成並且它不能訪問指示器視圖(儘管指標在頂部可見)。
我在考慮使用通知 - 這是處理這種情況的最佳方法嗎?
我建議你看輝煌MBProgressHUD
庫:
https://github.com/matej/MBProgressHUD
這是一個非常簡單的一組類,你可以用它來顯示加載和進步,可以被所有的視圖控制器在訪問視圖您應用程序。基本上,您可以在您的應用程序委託中進行設置並將其添加到您的應用程序窗口中。
然後,每個視圖控制器都可以從委託中訪問進度視圖,並在需要時顯示/隱藏它。它帶有一個示例項目和代碼 - 使用和定製非常簡單。
通知是解決方案的一半。你必須將它們和一個持久對象結合起來,這樣你才能始終得到當前狀態。例如,當一個視圖控制器即將出現時,它需要從某處讀取初始的「下載」狀態,因爲VC可能是在發送「開始」或「結束」通知之後創建的。
然後,當VC存活時,它可以簡單地響應通知來更新指示符。
此設計對於視圖而言非常重要,因爲視圖會一直存在卸載/重新加載的風險。
不知道你剛剛說了什麼對不起 – TheLearner 2011-04-28 13:05:10
你不能單靠通知。您還需要找出某種方式來確定指標是否應該在某個特定時間處於活動狀態。 – 2011-04-28 13:45:21