0

[self.navigationController popViewControllerAnimated:YES];基本的に、私が欲しいのは、特定のボタンが押されたとき、およびGoogleページにいる場合に、この関数を実行する関数です。しかし、私がGoogleページにいなくても機能は起こります。不足している可能性のあるものはありますか?

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    if(wasClicked)
    {
        if([[request.URL absoluteString] rangeOfString:@"google"].location!=NSNotFound)
        {
            [self.navigationController popViewControllerAnimated:YES];
        }
    }

    return YES;
}
4

2 に答える 2

4

UIWebViewNavigationTypeFormSubmittedボタンがクリックされた場合、またはリンクがクリックされた場合は、このメソッド内で確認する必要がありますUIWebViewNavigationTypeLinkClicked

if (navigationType == UIWebViewNavigationTypeLinkClicked) {
}

すべてのステップについて質問を投稿する前に、少なくともUIWebViewDelegateのドキュメントを読む必要があります。これを書いているのは、以前の質問で、それがどのように機能するかについて尋ねたときに、他の投稿で回答を得て、自分で試すのではなく、回答をコピーしてここに質問として貼り付けたからです。

于 2013-03-14T21:35:19.093 に答える
1

Google ページを使用している場合、ほとんどのリンクが文字列のどこかに「google」を含む URI の読み込み要求を開始する可能性が高くなります。これについてはよくわかりませんが、Google の検索結果でさえ、実際にクリックされたページにリダイレクトする前に、トラッキングのために最初に Google の URL を読み込んでいると思います。

関数に を追加NSLog(@"URL: %@", [request.URL absoluteString]);してみて、そのステートメントが と評価される理由を確認してくださいYES

于 2013-03-14T21:52:41.597 に答える