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