2010-09-26 121 views
0

我正在尋找在我可以用來顯示UIActivityIndi​​cator的主代表中創建一個通用線程。我有幾個視圖將新視圖推入堆棧。大部分視圖都是在調用視圖中的didSelectRow方法中調用的。當他們在UITableView中選擇一行時,我想啓動Activity Indicator並將新視圖推入堆棧。在新視圖的viewDidLoad方法中,我使用Json多次調用服務器,這可能需要一些時間來處理。 在處理完成後,從view1中顯示活動指示符並將其隱藏在view2中的最佳方式是什麼?iPhone UIActivityIndi​​cator線程幫助!

我在做夢,我可以在我的主要代表做2種方法嗎?

並從view1調用[startIndicator],它將顯示所有視圖頂部的Activity Indicator。

畢竟處理viewDidLoad方法對你幫助這將隱藏活動指示燈

感謝與視圖2調用[stopIndicator]!

回答

0

是的,你可以,只要確保在主線程上調用任何UIKit例程。你可以使其更加「線程友好」的編寫程序,如:

-(void)startIndicator { 
    if ([NSThread isMainThread] == FALSE) { 
     [self performSelectorOnMainThread:@selector(startIndicator) withObject:nil waitUntilDone:NO]; 
     return; 
    } 

    /* Actual UIIndicator setup */ 
} 

如果您有多個線程可以啓動或停止的指標,你可能還需要一個引用計數添加到程序,增加每當某些線程調用「啓動」並在他們調用「停止」時遞減時,保持活動指示器持續,直到「停止」調用將計數減少到零。