私はこれが非常に一般的な質問であることを知っています、私はスタックオーバーフローで尋ねられた質問のほとんどを読みましたが、それでもビューからuiactivityindicatorviewを削除する方法を理解できませんでした。コードの下を見つけてください
@implementation FeedBackViewController
@synthesize m_activity,webView;
-(void)viewDidLoad{
[super viewDidLoad];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://equinox.library.pitt.edu/limesurvey/index.php?sid=87435&lang=en"]]];
}
- (void)dealloc {
[m_activity release];
[webView release];
[super dealloc];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[m_activity stopAnimating];
[m_activity removeFromSuperview];
m_activity = nil;
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
NSLog(@"in webViewDidFinishLoad")
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
m_activity.center = self.view.center;
[self.view addSubview: m_activity];
[m_activity startAnimating];
}
ヘッダーファイル
@interface FeedBackViewController : UIViewController<UIWebViewDelegate>{
IBOutlet UIWebView *webView;
IBOutlet UIActivityIndicatorView *m_activity;
}
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, retain) UIActivityIndicatorView *m_activity;
また、IBのチェックボックスをオンにしました。停止すると非表示になります。webViewFinishLoadメソッドを入れNSLog(@"in webViewDidFinishLoad")ましたが、何らかの理由でそのメソッドにヒットしないようです。とのために
NSLog(@"m_activity = %@",m_activity);
viewDidLoadメソッドでは、コンソールに次のようなメッセージが表示されます
> m_activity = <UIActivityIndicatorView:
> 0x4d3d920; frame = (150 79; 20 20);
> hidden = YES; opaque = NO; autoresize
> = RM+BM; layer = <CALayer: 0x4d35ce0>>