2012-03-28 76 views
0

手頭的應用程序有多個viewController堆疊在UINavigation中。ActivityIndi​​cator啓動/停止的優雅檢測動畫

每個視圖都可以調用將觸發單個活動指示器(每個視圖一個活動指示器)的內部操作。

問題:什麼是一個優雅的方式有一箇中央代碼,可以檢測何時不同的活動指標開始/停止?

我認爲一個好的中心點是代表,我正在尋找一個乾淨,高效,尤其是優雅的解決方案。

回答

0

在委託中創建活動指示器視圖並添加它,使其始終位於視圖的前面並隱藏它。

創建您的代理的接口計數器 int activityCounter;

精加工

-(void)stopActivityIndicator { 
    activityCounter--; 
    if (activityCounter <= 0) 
     activityView.hidden = YES; 
} 
在您的視圖控制器

然後在您的委託創建方法例如

-(void)startActivityIndicator { 
    activityCounter++; 
    activityView.hidden = NO; 
} 

而另一位當你開始一個需要顯示指標的活動,你可以在你的代理上打電話startActivityIndicator吃完後,請撥打stopActivityIndicator。這也將處理您可能有多個重疊活動的情況,並且您希望在活動指示器全部完成之前保持活動指示器可見。

0

可能是你可以爲所有的視圖控制器創建一個通用視圖控制器和所有您在其中發射活動指標視圖繼承它...

然後你就可以保持你的根據的活動指標棧對你的看法。你可以存儲一個NSMutableArray來跟蹤活動指標的開始和結束。

另一種方法是你也可以使用NSMutableDictionary,這樣你就可以將你的活動指示器的標誌和它的父視圖一起存儲爲它的關鍵。

所有最好的!