2

所以我的班级有两个不同的 UIWebView 对象(一个是菜单,另一个是内容)。我们称它们为 UIWebView "A" 和 UIWebView "B"

在我的 shouldStartLoadWithRequest 中,我如何确定从哪个 UIWebView 调用链接?是“A”还是“B”?我以为我可以只检查“标题”或“名称”之类的属性,所以我查看了文档但没有这样的运气。

我正在寻找这样的东西......

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"WebView is... %@",[webView title]);
}

如果我记录整个 webView,我会得到一个很大的哈希值,但没有引用我在 IBOutlet 中给它的原始名称。希望这是有道理的。

另外,有人可以指出我如何在文档中找到这种属性,因为这似乎是我想做的一件非常基本的事情。

4

1 回答 1

1

您可以测试webView传递给该方法的参数是否等于您声明的 ivars。

例如,如果 IBOutlets 的 ivars 被命名为webViewA并且webViewB

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (webView == webViewA)
        NSLog(@"webview A wants to load %@", request);
    else
        if (webView == webViewB)
            NSLog(@"webview B wants to load %@", request);
        else
            NSLog(@"some other webview wants to load %@", request);

    return YES;
}

或者,您也tag可以在 IB 或代码中将每个 Web 视图的属性设置为一些非零值(例如 10 和 20)并检查webView.tag委托方法中的值。

于 2011-10-06T01:31:10.607 回答