2010-12-17 81 views
0

我有一个模式视图控制器,我试图在其中呈现Web视图。这是第一次出现,它显示为空白。但是,当我关闭并再次单击它时,它显示正常。我想这可能是加载的webView的问题,但我试图显示它只有当webView完成加载,但它永远不会被调用。Modal View Controller第一次显示空白,随后正常工作

NSURL* newURL = [[NSURL alloc] initFileURLWithPath: fileString]; 
NSURLRequest *newURLRequest = [[NSURLRequest alloc] initWithURL: newURL]; 
[webViewController.webView loadRequest: newURLRequest]; 
[newURL release]; 
[newURLRequest release]; 
webViewController.modalPresentationStyle=UIModalPresentationPageSheet; 
[self presentModalViewController:webViewController animated:YES]; 

回答

4

直到第一次现在的调用导致控件被加载和初始化,webView控件才会被第一次访问。在第一次呈现之前,webViewController.webView将为零,因此在其上调用loadRequest将不会执行任何操作。

您可以在presentModalViewController调用之后移动loadRequest调用。

但是不直接访问视图控制器视图中的控件,最好是在WebViewController中将url字符串声明为NSString属性(称为urlString),并在presentModalViewController调用之前将其设置为fileString(并且不要创建NSURL等在那里):

webViewController.urlString = fileString; 
[self presentModalViewController:webViewController animated:YES]; 

最后,在WebViewController,在viewWillAppear:viewDidAppear:,创建(使用urlString)的NSURL,创建的NSURLRequest,并调用的loadRequest。

+0

谢谢,这工作完美。我甚至没有考虑到它尚未初始化的事实。 – russ36363 2010-12-17 19:09:25

+0

谢谢!这实际上帮助我解决了类似的问题,在浏览器控件是空白的时候,我关闭并重新打开了我的表单:) – Jen 2015-05-29 07:58:36

相关问题