我试过了:
- (void) webViewDidFinishLoad:(UIWebView *)webView1{
}
- (void) webViewDidFinishLoad:(UIWebView *)webView2{
}
错误是我无法重新定义相同的方法。
如果我必须使用相同的方法,我需要找出某种方法来识别另一个 webView,我该怎么做?
干杯
我试过了:
- (void) webViewDidFinishLoad:(UIWebView *)webView1{
}
- (void) webViewDidFinishLoad:(UIWebView *)webView2{
}
错误是我无法重新定义相同的方法。
如果我必须使用相同的方法,我需要找出某种方法来识别另一个 webView,我该怎么做?
干杯
- (void) webViewDidFinishLoad:(UIWebView *)webview{
if ( webview == self.webview1 )
{
// in case of webview 1
} else if ( webview == self.webview2 ) {
// in case of webview 2
} else {
NSLog(@"webview %@ was not wired to a property of %@",webview,self);
}
}
并将 webview1 和 webview2 作为属性添加到您的控制器。(即你需要@property 行和@synthesize 行)
传递一个 webview的原因- (void) webViewDidFinishLoad:(UIWebView *)webView
是为了让你知道哪个 webview 完成了加载。你有几个选择。
1.
//SomeController.h
@interface SomeController : UIViewController
UIWebView *webView1;
UIWebView *webView2;
@end
//SomeController.m
...
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
if(webView == webView1) { ... }
else if(webView == webView2) { ... }
}
...
2.
-(void)viewDidLoad
{
webView1.tag = 1;
webView2.tag = 2;
}
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
if(webView.tag == 1) { ... }
else if(webView.tag == 2) { ... }
}
当您以编程方式创建它们或从 Interface Builder 为它们添加插座时,您需要保留对它们的引用。这样,您将拥有实例变量,您可以将其与webView
方法参数进行比较,以查看哪个已完成加载。您只需要一种方法,您可能需要阅读该主题。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if (webView == webView1)
{
// handle webView1's loading
}
else if (webView == webView2)
{
// handle webView2's loading
}
}