我有一个标签栏控制器,一个标签屏幕包含一个 web 视图,加载一个请求说 google.com,当它加载时(即在 webview 的 didload 委托方法调用之前),如果我切换到另一个标签然后返回,微调器仍在运行但页面从未加载,我猜 viewDidLoad 只调用一次,所以我应该将加载代码放在 viewDidAppear 中,还是有办法解决这个问题?
谢谢!
我有一个标签栏控制器,一个标签屏幕包含一个 web 视图,加载一个请求说 google.com,当它加载时(即在 webview 的 didload 委托方法调用之前),如果我切换到另一个标签然后返回,微调器仍在运行但页面从未加载,我猜 viewDidLoad 只调用一次,所以我应该将加载代码放在 viewDidAppear 中,还是有办法解决这个问题?
谢谢!
我不明白你为什么要在每次出现时刷新 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。