让`didFailLoadWithError:`只在启动时运行一次

时间:2013-05-29 15:20:46

标签: ios objective-c uiwebview didfailwitherror

如果我在页面加载完成之前尝试单击另一个链接,didFailLoadWithError:触发并取消隐藏我隐藏的连接问题图像。这是我正在使用的代码:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
          (webView.loading?@"NO":@"YES"));
}

-(void)webView:(UIWebView *)myWebView didFailLoadWithError:(NSError *)error {

    NSLog(@"No internet connection");
    _connectionError.hidden = NO;
}

有没有人知道如何让它在应用启动时只运行一次,而在剩余的时间内再也不会再运行?

1 个答案:

答案 0 :(得分:0)

这是每次失败时触发的委托方法。

尝试这样的事情。 (在标题中创建名为firstTimeRun的BOOL)

-(void)webView:(UIWebView *)myWebView didFailLoadWithError:(NSError *)error {

    if (firstTimeRun) {

        _connectionError.hidden = NO;
        firstTimeRun = NO;
    }
}

如果您只想在第一次加载时想要这样做,请记住在加载网站时将firstTimeRun设置为NO。

编辑:

在您的Header文件(.h)中,您可以编写以下内容

@interface ... {

@property BOOL firstTimeRun;

}

您可能需要在方法中的某个位置初始化它。在我可以帮助你之前,你需要发布你班级的.h和.m文件。

相关问题