Iphone 在UITabBar应用程序中延迟加载UIWebView

Iphone 在UITabBar应用程序中延迟加载UIWebView,iphone,Iphone,我有一个基于uitabar的iPhone应用程序,每个选项卡下有4个不同的uiwebview。现在所有的UIWebViews都是在启动时加载的,需要的时间有点长 我想先加载默认选项卡的UIWebView,然后在后台加载其他选项卡。最好的方法是什么 我为每个选项卡设置了单独的ViewController,并且在每个.m文件中都有: - (void)viewDidLoad { NSString *urlAddress2 = @"http://google.com "; //Create a UR

我有一个基于uitabar的iPhone应用程序,每个选项卡下有4个不同的uiwebview。现在所有的UIWebViews都是在启动时加载的,需要的时间有点长

我想先加载默认选项卡的UIWebView,然后在后台加载其他选项卡。最好的方法是什么

我为每个选项卡设置了单独的ViewController,并且在每个.m文件中都有:

- (void)viewDidLoad {

NSString *urlAddress2 = @"http://google.com ";

//Create a URL object.
NSURL *url2 = [NSURL URLWithString:urlAddress2];

//URL Requst Object
NSURLRequest *requestObj2 = [NSURLRequest requestWithURL:url2];

//Load the request in the UIWebView.
[webView2 loadRequest:requestObj2];

}
有没有简单的方法告诉其他3个选项卡在启动后几秒钟而不是启动时开始加载?这是个好主意吗


非常感谢

您可以使用
NSTimer
,或在
视图中加载显示的内容或类似内容。

如果您使用而不是
NSURLRequest
,则可以为第一个URL触发一个。一旦该请求完成,您就可以异步启动其他三个URL请求(即在后台)。

使用ViewDidDisplay。这将在视图完全显示且动画结束后发送到控制器。

我通过实现一个模型层来解决这个问题,所有请求都通过该层传递。请求按优先级顺序排队和服务,通常一次一个。我添加了特定的方法,允许控制器升级请求的优先级,以便在必要时,两个或多个请求同时处于活动状态。当请求完成时,它会提醒它的代理(WebView的控制器)数据已准备好加载

根据您想要设置的方式,您可以在“webViewDidFinishLoad”(或者,可能是shouldStartLoadWithRequest或webViewDidStartLoad)中放置回调,以触发模型层出列并为下一个请求提供服务。为了安全起见,您还需要在模型层中设置一个超时

注意:您还需要将一些自定义代码添加到shouldStartLoadWithRequest中,以区分单击和推送数据的模型层。也就是说,根据navigationType,您希望返回NO或YES