没有调用iOS webViewDidFinishLoading

Cha*_*rts 3 uiwebview ios

我有一个UIWebView并且想要在加载时显示活动指示器.然后隐藏它webViewDidFinishLoading.唯一的问题是我收到这个NSURLErrorDomain错误-999的事情正在发生.在搜索之后我发现这个修复程序不能显示任何错误消息,但我webViewDidFinishLoading永远不会被调用来摆脱我的活动指示器和我正在进行的其他事情.我想我可以didFinishLoading在我的webViewDidFailWithError方法中调用该方法,如果它失败了-999,但这似乎超级hacky和错误.有想法该怎么解决这个吗?

编辑*我已经弄清楚webview被要求加载两次所以我能够摆脱错误-999.但是,似乎没有调用委托方法,除非我尝试加载webview两次(在这种情况下该webViewDidFinishLoading方法只被调用一次).

- (void)viewDidLoad
{
    self.webView.delegate = self;
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(refresh)
                                                 name:@"DidBecomeActive"
                                               object:nil];
    [super viewDidLoad];
}
-(void)refresh{
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://myapp.com/app/"]]];
    self.webView.scrollView.bounces = NO;
}

- (void)webViewDidFinishLoading:(UIWebView *)wv
{
    NSLog(@"finished loading");
    [self.activityInd stopAnimating];
    [self.view bringSubviewToFront:wv];
}

- (void)webView:(UIWebView *)wv didFailLoadWithError:(NSError *)error
{
    NSLog(@"Failed: %@", error);
    if([error code] == NSURLErrorCancelled){
        return;
    }
    [self.activityInd stopAnimating];
    [[[UIAlertView alloc] initWithTitle:@"Can't find server" message:@"Check your internet connection and try again." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]show];
}
Run Code Online (Sandbox Code Playgroud)

NSU*_*ult 13

您是否已将UIWebView委托分配给其对象,如下所示

webViewObject.delegate = self 
Run Code Online (Sandbox Code Playgroud)