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。如果你想要渐变的“后退箭头”风格,你将不得不提供你自己的按钮图像。