2009-11-19 102 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如果我把:在webViewDidStarLoad方法 [self.navigationController pushViewController:tView animated:YES];

应用只是挂,因为它不加载它的第一次点击。

+0

第一个代码片段是非常有用的,谢谢。 – samvermette 2010-05-26 03:33:49

回答

2

您需要确保已加载tView的视图。当一个viewController被实例化时,它的视图(以及它的所有IBOutlets)都是零,并且保持这种状态直到视图被加载。你有两种选择:将你的加载内容移动到tView的-viewDidLoad方法中,或者在调用[tView wView]之前强制加载视图,例如调用[tView view](这将强制XIB文件成为加载和所有网点连接。