objective-c - 模态视图 Controller 第一次显示空白,随后正常工作

标签 objective-c ipad ios modalviewcontroller

我有一个模态视图 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/

相关文章:

IOS:UISwipeGestureRecognizer

objective-c - NSString 到 FSRef 转换不起作用

objective-c - 应用程序可以在模拟器上运行,但不能在 iPad 上运行

ios - iPad 显示阵列中的图像

ios - Xcode View Controller - 水平方向问题

ios - 显示单元格边界之外的标签

ios - 关闭 MFMailComposeViewController 时如何防止 navigationController 返回根目录

iphone - 如何处理iphone中的按键事件

ios - 每次滚动时 UITableViewCell 都会更改其标签值

ios - 如何显示日期和日期的时区,与定义的国家/地区相关?