2009-11-19 3 views
3

У меня есть UITabBarController, и один из элементов панели - это контроллер навигации с некоторыми кнопками на нем. Одна из кнопок открывает urlRequest и загружает ее в UIWebView.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. Когда я ударяю назад и снова нажимаю кнопку, я вижу отладку, и все работает, просто находят.

Любая идея, что вызывает это?

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

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

+0

этот первый фрагмент кода был весьма полезен, спасибо. – samvermette

ответ

2

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

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