捕捉后退按钮导航事件

问题描述:

我有一个基于导航的应用程序。在tableview中点击一行后,我推送一个UIWebView。 UIWebView中有Web链接。用户点击链接,该链接呈现外部网页。这一切都发生在我的应用程序。顶部的导航栏并没有因点击链接和外部网页而改变。但是,一旦用户点击左上角的导航按钮,它们将返回到tableview而不是最初的UIWebView。如何连接到导航返回按钮,并将用户放回到最初的UIWebView,如果他们点击了外部链接?捕捉后退按钮导航事件

您可能会收到导航控制器更改的通知,但我不相信您可以阻止它们发生(UINavigationControllerDelegate协议)。解决这个

一种方式是建立一个对象是网页视图的委托(UIWebViewDelegate协议)和实施了:

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

这里返回NO,以避免打开在web视图的链接,手的请求到第二个视图控制器中的webview,并将第二个视图控制器推到导航控制器堆栈上。

这样您就不必拦截向后导航,但UI的行为与用户所期望的相同。