2011-04-14 104 views
0

我有一個導航控制器的應用程序。當應用程序啓動時,會加載一個表格視圖,點擊一行,打開一個加載頁面的webview(讓我們稱之爲page1)。 Page1可能包含鏈接,用戶點擊鏈接並加載新頁面(第2頁)。用戶然後想要返回到page1並單擊導航欄中的後退按鈕。點擊後退按鈕將他帶到桌子視圖,而不是page1。NavBar後退按鈕行爲

如何更改該行爲或攔截後退按鈕?

回答

1

UIWebView中有一個屬性'GoBack的' & 'goForward' 我建議你創建一個單獨的按鈕用於瀏覽回&等等。 爲這些按鈕實施以下操作。

  • (無效)actionBackButtonPressed {

    [myWebView GoBack的];

}

- (無效)actionForwardButtonAction {

[myWebView goForward]; 

}

0

我們有UIWebViewDelegate方法,跟蹤webView中的內容加載。所以,當用戶點擊page1上的任何鏈接。你應該使用- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType方法。在這種方法中,只需創建另一個新的viewController(與第1頁相同),並使用loadRequest推送newController。

感謝,

1

您需要使用委託方法和自定義用戶界面的其他人必須自己管理的UIWebView導航提及。要回答你的問題回覆:在導航項目的後退按鈕,就不能覆蓋默認後退按鈕的行爲,但你可以把在navigationItem(通常在viewDidLoad)您自己的按鈕:

UIBarButtonItem *myBackButton = [[UIBarButtonItem alloc] initWith... 
self.navigationItem.leftBarButtonItem = myBackButton; 
[myBackButton release]; 

你可以選擇init...方法UIBarButtonItem最適合您的應用。如果你喜歡,你可以使用這個按鈕與你的web視圖結合使用,但是恕我直言,將UIWebView的導航範例與UINavigationController的導航範例混合會很奇怪。但是,這是你的應用程序,只是試圖添加到你的工具箱。

另請注意,無法創建看起來像標準後退按鈕的UIBarButtonItem。如果你想要漸變的「後退箭頭」風格,你將不得不提供你自己的按鈕圖像。