iPhone UIActivityIndi​​cator线程帮助!

问题描述:

我正在寻找在我可以用来显示UIActivityIndi​​cator的主代表中创建一个通用线程。我有几个视图将新视图推入堆栈。大部分视图都是在调用视图中的didSelectRow方法中调用的。当他们在UITableView中选择一行时,我想启动Activity Indicator并将新视图推入堆栈。在新视图的viewDidLoad方法中,我使用Json多次调用服务器,这可能需要一些时间来处理。 在处理完成后,从view1中显示活动指示符并将其隐藏在view2中的最佳方式是什么?iPhone UIActivityIndi​​cator线程帮助!

我在做梦,我可以在我的主要代表做2种方法吗?

并从view1调用[startIndicator],它将显示所有视图顶部的Activity Indicator。

毕竟处理viewDidLoad方法对你帮助这将隐藏活动指示灯

感谢与视图2调用[stopIndicator]!

是的,你可以,只要确保在主线程上调用任何UIKit例程。你可以使其更加“线程友好”的编写程序,如:

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

    /* Actual UIIndicator setup */ 
} 

如果您有多个线程可以启动或停止的指标,你可能还需要一个引用计数添加到程序,增加每当某些线程调用“启动”并在他们调用“停止”时递减时,保持活动指示器持续,直到“停止”调用将计数减少到零。