手头的应用程序在UINavigation中堆叠了几个viewControllers。
每个视图都可以调用将触发单个活动指示器的内部操作(每个视图一个活动指示器)。
问题:有一个优雅的方法来设置一个中央代码,可以检测不同的活动指标何时开始/停止?
我认为一个好的中心点是代表,我正在寻找一个干净,高效且最重要的解决方案。
答案 0 :(得分:0)
您可以为所有View控制器创建一个通用的View Controller,并在您触发活动指示器的所有Views中继承它...
然后,您可以根据自己的观点维护堆栈的活动指标。您可以存储NSMutableArray以跟踪您正在开始和停止的活动指示器。
另一种方法是你也可以使用NSMutableDictionary,这样你就可以将活动指示器的标志及其父视图作为其键存储。
一切顺利!!!
答案 1 :(得分:0)
在您的委托中创建活动指示器视图并添加它,使其始终位于视图的前面并隐藏它。
在委托的界面中创建一个计数器
int activityCounter;
在您的代理上创建一个方法,例如
-(void)startActivityIndicator {
activityCounter++;
activityView.hidden = NO;
}
另一个完成
-(void)stopActivityIndicator {
activityCounter--;
if (activityCounter <= 0)
activityView.hidden = YES;
}
然后在您的视图控制器中,当您启动需要显示指示符的活动时,您可以在代理上调用startActivityIndicator
,并在完成后调用stopActivityIndicator
。这也将处理您可能有多个重叠活动的情况,并且您希望活动指示器保持可见状态,直到它们全部完成。