2013-03-14 60 views
0

基本上,我想要的是一個功能,執行此功能[self.navigationController popViewControllerAnimated:YES];當某個按鈕被按下,如果你在谷歌網頁上。但即使我不在Google頁面上,該功能也會發生。有什麼我可能會失蹤?布爾web查看功能沒有按計劃工作

- (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

你應該在此方法中檢查是否按鈕被點擊與UIWebViewNavigationTypeFormSubmitted或鏈接被點擊UIWebViewNavigationTypeLinkClicked

if (navigationType == UIWebViewNavigationTypeLinkClicked) { 
} 

你應該張貼的問題,每一步前至少閱讀UIWebViewDelegate的文檔。我寫這篇文章是因爲在上一個問題中,你問到它是如何工作的,你在other post得到了答案,你複製了答案並在這裏粘貼爲一個問題,而不是自己嘗試。

+1

同意..蘋果的開發文檔是一個很好的起點。 – ApolloSoftware 2013-03-14 21:53:30

1

如果您使用的是Google頁面,則很有可能大部分鏈接都會啓動一個包含字符串某處的「google」URI的加載請求。我不確定這一點,但我認爲,即使Google搜索結果首先加載了Google網址,以便在重定向到實際點擊的網頁之前進行跟蹤。

嘗試將NSLog(@"URL: %@", [request.URL absoluteString]);添加到您的函數中,並查看爲什麼該語句正在評估爲YES