2016-11-23 6 views
0

У меня есть UIViewController с его viewDidLoad способом, как это:Как остановить WKWebView во время загрузки запроса

self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight-64)]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.passageUrl]]; 
[self.webView loadRequest:request]; 
self.webView.UIDelegate = self; 
self.webView.navigationDelegate = self; 
[self.view addSubview:self.webView]; 

Теперь я хочу, чтобы сделать действие popViewController до загрузки завершен, поскольку подключение к Интернету иногда бывает нехорошо, я использую приведенный ниже код в своем поп-действии, код выполняется сразу, но webView не может немедленно прекратить загрузку, это будет за несколько секунд до того, как контроллер выскочит, у кого-нибудь есть идея о том, как решить это?

- (void)doBack:(id)sender { 
    [self.webView stopLoading]; 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

Я обнаружил, что в симуляторе он работает хорошо, поэтому выясняется, что проблема существует только в устройстве.

+0

попробовать поставить в основной поток .. –

+0

Но я не начать новую тему. – Jeremy

+0

ОК не проблема просто проверить wheater это в массиве навигации или нет? –

ответ

0

Попробуйте этот

- (id)popToViewControllerWithClassname:(NSString *)className Animated:(BOOL)animated { 
    Class class = NSClassFromString(className); 
    for (UIViewController *controller in self.viewControllers) { 
     if([controller isKindOfClass:class]) { 
      [self popToViewController:controller animated:animated]; 
      return controller; 
     } 
    } 
    return nil; 
} 

вызова метода

[self.navigationController popToViewControllerWithClassname:@"TestViewController" Animated:YES]; 
+0

Спасибо, я сделал то, что вы сказали, но это не сработало. Может быть, проблема не в том, что вы делаете всплывающие подсказки, может быть, речь идет о загрузке webView. Я задал этот вопрос, потому что мой WKWebView всегда загружается медленно и не может быть остановлен, если он начал загружаться, это меня очень беспокоило. Может быть, я должен попытаться улучшить скорость реакции моего веб-браузера. – Jeremy

Смежные вопросы