質問

私はNAVベースのアプリを持っています。行がテーブルビューでクリックされたら、私はのUIWebViewを押してください。 UIWebViewは、その中にWebリンクを持っています。ユーザーは外部のウェブページをレンダリングするリンクをクリックします。これはすべての私のアプリ内で起こります。トップのナビゲーションバーは、レンダリング、リンクのクリックや外部のウェブページで変更されていません。ユーザは、左上のナビゲーションボタンをクリックするとしかし、彼らはテーブルビューではなく、初期のUIWebViewに戻ります。彼らは外部リンクを以下からクリックされた場合にどのように私はNAV戻るボタンまで配線でき、初期のUIWebViewに戻ってユーザーを置く?

役に立ちましたか?

解決

あなたはナビゲーションコントローラの変更の通知を受けることができ、私はあなたが(UINavigationControllerDelegateプロトコル)起きてからそれらを防ぐことができると信じていません。

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

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

ここでは、手、WebViewの中でリンクを開く回避するために、第2のビューコントローラ内のWebViewにオーバー要求をNOを返し、ナビゲーションコントローラのスタックに、この第2のビューコントローラを押します。

この方法は、あなたは後方ナビゲーションを傍受する必要はありませんが、ユーザーが期待するようにUIが動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top