【发布时间】:2010-10-30 12:45:00
【问题描述】:
我已经将一个包含 UIWebView 的视图推送到我的导航控制器上,这将加载一个 URL。
当它启动时,我启动 networkActivityIndicatorVisible,当它完成时,我将其隐藏。
如果用户决定他不想完成网页加载并返回导航控制器,网络指示器会继续。我该如何摆脱这个,因为似乎没有委托方法,并且没有任何 viewdidUnload 被触发....
【问题讨论】:
我已经将一个包含 UIWebView 的视图推送到我的导航控制器上,这将加载一个 URL。
当它启动时,我启动 networkActivityIndicatorVisible,当它完成时,我将其隐藏。
如果用户决定他不想完成网页加载并返回导航控制器,网络指示器会继续。我该如何摆脱这个,因为似乎没有委托方法,并且没有任何 viewdidUnload 被触发....
【问题讨论】:
在你的 UIWebView 的 ViewController 的 viewWillDisappear: 方法中,这样做
if([yourWebView isLoading]){
//hide your network activity indicator
[yourWebView stopLoading];
}
希望有帮助
【讨论】:
我为加载过程做了一个简单的引用计数解决方案:
-(void)webViewDidStartLoad:(UIWebView *)webView {
if (_loadRef == 0) {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
}
_loadRef++;
}
-(void)webViewDidFinishLoad:(UIWebView *)webView {
_loadRef--;
if (_loadRef == 0) {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
}
【讨论】:
如何让活动指示器在前一个控制器的 viewWillAppear:(BOOL)animated 中不可见?
【讨论】: