0

私はナビベースのアプリを持っています。テーブルビューで行がクリックされると、UIWebView をプッシュします。UIWebView には Web リンクがあります。ユーザーがリンクをクリックすると、外部 Web ページが表示されます。これはすべて、私のアプリ内で発生します。上部のナビゲーション バーは、レンダリングするリンクと外部 Web ページをクリックしても変更されていません。ただし、ユーザーが左上のナビゲーション ボタンをクリックすると、最初の UIWebView ではなくテーブルビューに戻ります。外部リンクからクリックしている場合、ナビゲーションの戻るボタンに接続して、ユーザーを最初の UIWebView に戻すにはどうすればよいですか?

4

1 に答える 1

2

ナビゲーション コントローラーの変更を通知することはできますが、それを防ぐことはできないと思います (UINavigationControllerDelegate プロトコル)。

これを解決する 1 つの方法は、オブジェクトを webview のデリゲート (UIWebViewDelegate プロトコル) として設定し、以下を実装することです。

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

ここで NO を返して、webview でリンクを開かないようにし、リクエストを 2 番目のビュー コントローラーの webview に渡し、この 2 番目のビュー コントローラーをナビゲーション コントローラー スタックにプッシュします。

この方法では、後方ナビゲーションをインターセプトする必要はありませんが、UI はユーザーが期待するように動作します。

于 2009-04-19T09:33:52.547 に答える