App Delegateからアクティビティインジケーターを管理しようとしています。そうすれば、どのビューでもインジケーターを表示できます。だから、私はそれをサブビューとして'window'に追加し、次のように開始/停止します:
- (void)didStartActivity
{
if( activityIndicator == nil ) {
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityIndicator.hidesWhenStopped = YES;
activityIndicator.center = window.center;
activityIndicator.transform = CGAffineTransformScale(CGAffineTransformIdentity, 6.0, 6.0);
}
NSLog(@"%s: starting the activityIndicator", __FUNCTION__);
[window addSubview:activityIndicator];
[activityIndicator startAnimating];
}
ログメッセージが表示されるので、コードが呼び出されていることがわかります。インジケーターは中央にあり、デフォルトサイズの6倍です。ただし、stopAnimatingは停止していません。私が結論付けることができる唯一のことは、それが現在のViewControllerで実行される必要があるということです。
- (void)didStopActivity
{
NSLog(@"%s: stopping the activityIndicator", __FUNCTION__);
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];
}