UIWebView не загружает страницу

Я получил UITabBarController, и одним из элементов панели является контроллер навигации с несколькими кнопками на нем. Одна из кнопок открывает urlRequest и загружает его в UIWebView.

NSURL * url = [NSURL URLWithString:myUrl];
NSURLRequest * urlRequest = [NSURLRequest requestWithURL:url];
UIWebView * web = [tView wView];
[web setScalesPageToFit:YES];
[web loadHTMLString:@"Loading" baseURL:nil];
[web loadRequest:urlRequest];
[self.navigationController pushViewController:tView animated:YES];

По какой-то причине, когда я нажимаю кнопку в первый раз, ничего не происходит.

Я использовал протокол UIWebViewDelegate для его отладки следующим образом:

- (void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidStartLoad");

}

Когда я нажимаю кнопку, ничего не происходит, и я не вижу сообщение NSLog. Когда я возвращаюсь и нажимаю кнопку снова, я вижу отладку, и все работает, просто найди.

Есть идеи, что вызвало это?

PS если я поставлю:[self.navigationController pushViewController:tView animated:YES];

в методе webViewDidStarLoad приложение просто зависает, поскольку оно не загружается с первого клика.

1 ответ

Решение

Вы должны убедиться, что представление tView было загружено. Когда создается экземпляр viewController, все его представления (и все его IBOutlets) равны нулю и остаются такими до тех пор, пока представление не будет загружено.

У вас есть два варианта: переместить загружаемый материал в метод tView -viewDidLoad или принудительно загрузить представление перед вызовом [tView wView], например, вызвав [представление tView] (это приведет к загрузке файла XIB, и все розетки для подключения.

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