0

特定の状況下で Web ビューの前の Web ページに戻るこのメソッドがあり、正常に動作します。ただし、元の Web ページにいるかどうかを確認する関数を実装したいと考えています。そうであれば、戻るボタンを押すと、ナビゲーション ビュー コントローラーに移動します。元のページはこのコード [webView loadHTMLString:self.item.description baseURL:[NSURL URLWithString:self.item.link]]; です。次に、そのページにいるかどうかを確認する方法を理解する必要があります。そうであれば、次のコードを実行する必要があります[self.navigationController popViewControllerAnimated:YES];。どんな助けでも大歓迎です。

- (void)back
{
    if ([webView canGoBack]) {
        [webView goBack];
    } else {
        [webView loadHTMLString:self.item.description baseURL:[NSURL URLWithString:self.item.link]];    
    }
}
4

2 に答える 2

1

のデリゲートメソッドshouldStartLoadWithRequestを使用UIWebViewDelegate して、URLに何が含まれているかを確認できます。あなたがそれを見つけたら、それからちょうど行きますNavigationController

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

    if ([[request.URL absoluteString] rangeOfString:@"http://yourURL"].location!=NSNotFound) {
       [self.navigationController popViewControllerAnimated:YES];.    
    }
}
于 2013-03-14T20:51:03.520 に答える
0

追加する必要があります

       <UIWebViewDelegate> 

ヘッダーに。次に、webView.delegate を yes に設定します。

デリゲートとして設定したら、absoluteString と requestURL を取得し、メソッドをオーバーライドできます。absoluteString を使用すると、部分文字列、テキスト、ドメインなど、基本的に必要なものをすべてチェックできます。shouldStartLoadWithRequest または webViewDidFinishLoad をオーバーライドします。

   -(void)webViewDidFinishLoad:(UIWebView *)webView 
   -(void)shouldStartLoadWithRequest :(UIWebView *)webView 

これは、Web ページが読み込まれるたびに呼び出されます。

于 2013-03-14T20:58:57.287 に答える