0

我有一个模态视图控制器,我试图在其中显示一个 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];
4

1 回答 1

4

在第一次出现的调用导致控件被加载和初始化之前,第一次无法访问 webView 控件。在第一次出现之前,webViewController.webView 将为 nil,因此对其调用 loadRequest 将无济于事。

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

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

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

最后,在WebViewControllerviewWillAppear:or中viewDidAppear:,创建 NSURL(使用 urlString),创建 NSURLRequest,然后调用 loadRequest。

于 2010-12-17T18:35:51.467 回答