我有一个UIWebView正在加载一个简单的请求:
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"derp.com"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0];
[webView loadRequest:theRequest];
我有另一种方法在webView上执行一些JavaScript。可以从不同的源(包括webViewDidFinishLoad和viewDidAppear)多次调用此方法。为了防止错误,我将其包含在if语句中,如下所示:
if (!self.webView.loading) {
... do stuff....
}
问题是self.webView.loading总是0.我甚至试图建立一个观察者(尝试了几个不同的变体....不是100%确定sytnax):
[self addObserver:self forKeyPath:@"webView.loading" options:0 context:NULL];
但observeValueForKeyPath:ofObject:change:context:永远不会被调用。
答案 0 :(得分:1)
最好实现UIWebViewDelegate方法......
在viewDidLoad中设置委托:
[webView setDelegate:self];
您可以使用
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//做一次加载的事情}`
在负载完成时接到一个回叫,它比搞乱KVO更可靠。
答案 1 :(得分:0)
isLoading = YES如果接收方仍在加载内容;否则,不。 那么,此时是否可能已完成Web视图的加载?