2009-04-18 101 views
0

我有一個基於導航的應用程序。在tableview中點擊一行後,我推送一個UIWebView。 UIWebView中有Web鏈接。用戶點擊鏈接,該鏈接呈現外部網頁。這一切都發生在我的應用程序。頂部的導航欄並沒有因點擊鏈接和外部網頁而改變。但是,一旦用戶點擊左上角的導航按鈕,它們將返回到tableview而不是最初的UIWebView。如何連接到導航返回按鈕,並將用戶放回到最初的UIWebView,如果他們點擊了外部鏈接?捕捉後退按鈕導航事件

回答

2

您可能會收到導航控制器更改的通知,但我不相信您可以阻止它們發生(UINavigationControllerDelegate協議)。解決這個

一種方式是建立一個對象是網頁視圖的委託(UIWebViewDelegate協議)和實施了:

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

這裏返回NO,以避免打開在web視圖的鏈接,手的請求到第二個視圖控制器中的webview,並將第二個視圖控制器推到導航控制器堆棧上。

這樣您就不必攔截向後導航,但UI的行爲與用戶所期望的相同。