UIWebViewのロード中にUINavigationBarの右アイテムにインジゲータを表示させる方法を紹介します。
UIWebViewにURLを指定するなどして、ウェブページの読み込みをおこなうとwebViewDidStartLoad:メソッド
が呼ばれます。このタイミングでUIActivityIndicatorViewをナビゲーションバーの右アイテムに設定します。
-(void)webViewDidStartLoad:(UIWebView*)webView { UIActivityIndicatorView *actInd = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; UIBarButtonItem *actItem = [[UIBarButtonItem alloc] initWithCustomView:actInd]; self.navigationItem.rightBarButtonItem = actItem; [actInd startAnimating]; [actInd release]; [actItem release]; }
読み込みが完了した時点で、以下のコードのようにナビゲーションバーの右アイテムを空にします。
- (void)webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error { self.navigationItem.rightBarButtonItem = nil; }