我有一个模态视图 Controller ,我试图在其中呈现一个 WebView 。它第一次出现时,显示为空白。但是,当我关闭它并再次单击它时,它显示正常。我认为这可能是 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];
最佳答案
WebView 控件将无法第一次访问,直到第一次 present 调用导致加载和初始化控件。在第一次出现之前,webViewController.webView 将为 nil,因此对其调用 loadRequest 将不会执行任何操作。
您可以在 presentModalViewController 调用之后移动 loadRequest 调用。
但是,与其直接访问 View Controller View 中的控件,不如在 WebViewController 中将 url 字符串声明为 NSString 属性(称为 urlString),并在 presentModalViewController 调用之前将其设置为 fileString(并且不要创建NSURL 等):
webViewController.urlString = fileString;
[self presentModalViewController:webViewController animated:YES];
最后,在 WebViewController 中,在 viewWillAppear:
或 viewDidAppear:
中,创建 NSURL(使用 urlString) ,创建 NSURLRequest,并调用 loadRequest。
关于objective-c - 模态视图 Controller 第一次显示空白,随后正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4472824/