Наличие `didFailLoadWithError:` запускается только один раз при запуске

Если я попытаюсь щелкнуть другую ссылку до завершения загрузки страницы, 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 ответ

Решение

Это метод делегата, который запускается каждый раз при сбое.

попробуйте что-нибудь подобное. (создайте BOOL с именем firstTimeRun в заголовке)

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

    if (firstTimeRun) {

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

Не забудьте установить firstTimeRun на NO при загрузке сайта, если вы хотите, чтобы это было только при первой загрузке.

РЕДАКТИРОВАТЬ:

В своем заголовочном файле (.h) вы пишете следующее

@interface ... {

@property BOOL firstTimeRun;

}

вам может понадобиться инициализировать его с NO где-нибудь в вашем методе. Вы должны опубликовать свои.h и.m файлы класса, прежде чем я смогу помочь вам больше.

Другие вопросы по тегам