2

したがって、私のクラスには2つの異なるUIWebViewオブジェクトがあります(1つはメニューで、もう1つはコンテンツ用です)。それらを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そのメソッドに渡されたパラメーターが、宣言したivarと等しいかどうかをテストできます。

たとえば、IBOutletsのivarに名前が付けられている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;
}

または、tagIBまたはコードのいずれかで各Webビューのプロパティをゼロ以外の値(たとえば10と20)に設定webView.tagし、デリゲートメソッドでの値を確認することもできます。

于 2011-10-06T01:31:10.607 に答える