当网络已经加载时如何让活动指示器停止?

How to get a activityindicator stop when the web load already?

我有一个 webview 和一个 activityIndi​​cator,我希望 activityIndi​​cator 在 URL 加载时停止。我有这个:

XYZViewController.h

@interface XYZViewController : UIViewController <UIWebViewDelegate>

@property (weak, nonatomic) IBOutlet UIWebView *browser; 

@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;

@end

XYZViewController.m

-(void)viewDidLoad {
    [super viewDidLoad];

    self.activityIndicator.hidden = NO;
    [self.activityIndicator startAnimating];

    NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]];

    NSURLRequest* request = [NSURLRequest requestWithURL:url];

    [self.browser loadRequest:request];
}

-(void) webViewDidFinishLoad:(UIWebView *)webView {
    [self.activityIndicator stopAnimating];
    self.activityIndicator.hidden = YES;
} 

AppDelegate.m

XYZViewController* viewVC = [XYZViewController alloc]init];

viewVC.browser.delegate = viewVC;

我不知道那是错的?

有人帮帮我吗?

按照@puzzl 的建议进行操作,然后将其添加到 webViewDidStartLoad: 而不是 viewDidLoad

- (void)viewDidLoad {
   ... 
   self.browser.delegate = self
   ...
}

- (void)webViewDidStartLoad:(UIWebView *)webView {
    self.activityIndicator.hidden = NO;
    [self.activityIndicator startAnimating];
}