webView - 如何停止重新加载

时间:2014-05-31 09:26:58

标签: ios cocoa-touch uiwebview

我正在Xcode中开发一个应用程序但是我遇到了一个问题。

基本上在主应用页面上,有一个包含Web视图的小部分。每当我换到另一个视图控制器并返回时,我看到它闪烁并重新加载。有没有办法防止它每次打开视图时重新加载?而是每次打开应用程序时重新加载。

这是代码:

NSURL *webUrl = [NSURL URLWithString:@"myurl.com"];
NSURLRequest *webrequestUrl = [NSURLRequest requestWithURL:webUrl];
[webView loadRequest:webrequestUrl];

webView.scrollView.scrollEnabled = NO;
webView.scrollView.bounces = NO;

2 个答案:

答案 0 :(得分:2)

每次进入该界面时,您的网页视图都会重新加载,可能是因为您将其添加到viewDidAppear:或viewWillAppear。

将您的代码块添加到viewDidLoad方法中,以便仅在加载视图时执行(即第一次显示时)。

- (void)viewDidLoad:(BOOL)animated {
     NSURL *webUrl = [NSURL URLWithString:@"myurl.com"];
     NSURLRequest *webrequestUrl = [NSURLRequest requestWithURL:webUrl];
     [webView loadRequest:webrequestUrl];

      webView.scrollView.scrollEnabled = NO;
      webView.scrollView.bounces = NO;
}

编辑:哦,通过转到另一个视图然后回来你意味着回到导航堆栈(或切换导航堆栈)。在这种情况下,您可以使用webview对视图控制器进行强有力的引用并重用它。虽然我不建议这样做,但除非该屏幕是您应用程序中最重要的屏幕。

答案 1 :(得分:0)

希望你的逻辑不是方法

- (void)viewDidLoad

将您的代码移至 - viewDidLoad

即使您遇到问题,也可以在导航时通过预先加载的UIWebView