模态视图控制器第一次显示空白,随后正常工作

时间:2010-12-17 16:51:34

标签: objective-c ipad ios modalviewcontroller

我有一个模态视图控制器,我试图在其中呈现一个Web视图。它第一次出现时,显示为空白。当我将其关闭并再次单击时,它显示正常。我认为加载webView可能是一个问题,但我只是在webView完成加载时才尝试显示它,但它永远不会被调用。

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];

1 个答案:

答案 0 :(得分:4)

第一次调用导致控件加载和初始化之前,第一次无法访问webView控件。在第一次出现之前,webViewController.webView将为nil,因此在其上调用loadRequest将不执行任何操作。

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

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

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

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