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, и все розетки для подключения.