我有一个模态视图控制器,我试图在其中呈现一个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];
答案 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