我有一个基于导航的应用程序。在表格视图中单击一行后,我会推送一个 UIWebView。UIWebView 中有网络链接。用户单击一个链接,该链接呈现外部网页。这一切都发生在我的应用程序中。顶部导航栏没有随着单击呈现的链接和外部网页而改变。但是,一旦用户单击左上角的导航按钮,他们就会返回到 tableview 而不是初始的 UIWebView。如果用户从外部链接单击,我如何连接到导航返回按钮并将用户返回到初始 UIWebView?
问问题
1987 次
1 回答
2
您可以收到导航控制器更改的通知,但我不相信您可以阻止它们发生(UINavigationControllerDelegate 协议)。
解决此问题的一种方法是将对象设置为 webview 的委托(UIWebViewDelegate 协议)并实现:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
这里返回 NO 以避免在 webview 中打开链接,将请求交给第二个视图控制器中的 webview,然后将第二个视图控制器推送到导航控制器堆栈上。
这样您就不必拦截向后导航,但 UI 的行为就像用户期望的那样。
于 2009-04-19T09:33:52.547 回答