我有一個導航控制器的應用程序。當應用程序啓動時,會加載一個表格視圖,點擊一行,打開一個加載頁面的webview(讓我們稱之爲page1)。 Page1可能包含鏈接,用戶點擊鏈接並加載新頁面(第2頁)。用戶然後想要返回到page1並單擊導航欄中的後退按鈕。點擊後退按鈕將他帶到桌子視圖,而不是page1。NavBar後退按鈕行爲
如何更改該行爲或攔截後退按鈕?
我有一個導航控制器的應用程序。當應用程序啓動時,會加載一個表格視圖,點擊一行,打開一個加載頁面的webview(讓我們稱之爲page1)。 Page1可能包含鏈接,用戶點擊鏈接並加載新頁面(第2頁)。用戶然後想要返回到page1並單擊導航欄中的後退按鈕。點擊後退按鈕將他帶到桌子視圖,而不是page1。NavBar後退按鈕行爲
如何更改該行爲或攔截後退按鈕?
UIWebView中有一個屬性'GoBack的' & 'goForward' 我建議你創建一個單獨的按鈕用於瀏覽回&等等。 爲這些按鈕實施以下操作。
(無效)actionBackButtonPressed {
[myWebView GoBack的];
}
- (無效)actionForwardButtonAction {
[myWebView goForward];
}
我們有UIWebViewDelegate
方法,跟蹤webView中的內容加載。所以,當用戶點擊page1上的任何鏈接。你應該使用- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
方法。在這種方法中,只需創建另一個新的viewController
(與第1頁相同),並使用loadRequest
推送newController。
感謝,
您需要使用委託方法和自定義用戶界面的其他人必須自己管理的UIWebView導航提及。要回答你的問題回覆:在導航項目的後退按鈕,就不能覆蓋默認後退按鈕的行爲,但你可以把在navigationItem(通常在viewDidLoad
)您自己的按鈕:
UIBarButtonItem *myBackButton = [[UIBarButtonItem alloc] initWith...
self.navigationItem.leftBarButtonItem = myBackButton;
[myBackButton release];
你可以選擇init...
方法UIBarButtonItem
最適合您的應用。如果你喜歡,你可以使用這個按鈕與你的web視圖結合使用,但是恕我直言,將UIWebView的導航範例與UINavigationController的導航範例混合會很奇怪。但是,這是你的應用程序,只是試圖添加到你的工具箱。
另請注意,無法創建看起來像標準後退按鈕的UIBarButtonItem。如果你想要漸變的「後退箭頭」風格,你將不得不提供你自己的按鈕圖像。