0

我有一个标签栏控制器,一个标签屏幕包含一个 web 视图,加载一个请求说 google.com,当它加载时(即在 webview 的 didload 委托方法调用之前),如果我切换到另一个标签然后返回,微调器仍在运行但页面从未加载,我猜 viewDidLoad 只调用一次,所以我应该将加载代码放在 viewDidAppear 中,还是有办法解决这个问题?

谢谢!

4

1 回答 1

0

我不明白你为什么要在每次出现时刷新 WebView。但是使用- (void)viewWillAppear:animated

编辑:

好的,既然我现在得到了更多的信息,我可以给你更多的信息!

在您的 .h 中:

BOOL *loaded

在你的 .m 中:

- (void)viewWillAppear:animated {
     if (loaded == NO) {
         //load the website
     }
 }


- (void)webViewDidFinishLoad:(UIWebView *)webView { 
     [loaded setBool:YES];
 }


- (IBAction)loadWebsite {
    //if the user reloads or loads a new website do this:
    [loaded setBool:NO];
    //reload, or load the new website
}

加载或重新加载你的 UITableView:

 NSString *urlAddress = urltextfield.text;
 NSURL *url = [NSURL URLWithString:urlAddress];
 NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
 [webView loadRequest:requestObj];

澄清:如果加载了视图,我将 BOOL 设置为 YES,因此当 webview 完成加载并且用户切换到另一个选项卡时,WebView 不会重新加载。但是如果 WebView 没有完全加载,则 BOOl 返回 NO,并且 WebView 将重新加载!当重新加载 WebView 或加载新网站时,我将 BOOL 设置为 NO,并且一遍又一遍地循环!请注意,BOOls 默认为 NO。

于 2011-08-15T00:53:56.950 回答