我有一个带有webView的viewController,我在这里显示一个本地的html文件。
问题是加载前需要几秒钟,因此我试图避免这段等待时间。
到目前为止,我认为最好的方法如下: 一进入主页面,我就会开始将文件加载到webView中,这样当我将使用webView进入infoViewController时,它已经被加载了。
以下是代码:
//mainViewController.m:
tempInfo = [[InfoViewController alloc]initWithNibName:@"InfoViewController" bundle:nil];
[tempInfo.webView123 loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"About" ofType:@"htm"]isDirectory:NO]]];
tempInfo.test =@"test";
正如您所看到的,我还添加了一个测试变量,当我进入infoViewController时,未加载webView但测试变量更改了值。这意味着它传递的是测试变量的值,但它没有将html文件加载到webView中。
有什么想法吗?
答案 0 :(得分:1)
我假设您使用的是iOS。
WebView并不便宜,而且作为SDK的一部分提供的WebView不如本机Safari窗口那么好。
修改变量的原因是loadRequest
是异步的。
您实际上是在要求Webview启动&从寒冷中加载您的页面。该页面在将来的某个点完成加载。您可以通过实施适当的委托方法来了解何时。
您可能想尝试的一些事情。
如果您的视图控制器是单击(使用和丢弃),请尝试在initWithNibName
中加载请求,并将网页视图置于viewDidLoad
或viewWillAppear
通过加载一个非常简单的“Hello World”文本文件来确定它是否是您的页面。如果简单文件花费的时间少得多,那么您的页面可能需要进行一些优化。
使用页面加载委托方法
– webViewDidStartLoad:
– webViewDidFinishLoad:
– webView:didFailLoadWithError:
要确定您对“未加载”页面的假设是否正确。
祝你好运。