基本上,我想要的是当按下某个按钮并且你在Google页面上时执行此功能[self.navigationController popViewControllerAnimated:YES];
的功能。但即使我不在Google页面上,该功能也会发生。有什么我可能会失踪吗?
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
if(wasClicked)
{
if([[request.URL absoluteString] rangeOfString:@"google"].location!=NSNotFound)
{
[self.navigationController popViewControllerAnimated:YES];
}
}
return YES;
}
答案 0 :(得分:4)
您应该在此方法中查看是否点击了UIWebViewNavigationTypeFormSubmitted
按钮或点击了链接UIWebViewNavigationTypeLinkClicked
,
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
}
在为每一步发布问题之前,您至少应阅读UIWebViewDelegate的文档。我写这篇文章是因为在前一个问题中你询问它是如何工作的,你在other post得到了答案,你复制了答案并粘贴在这里作为问题,而不是自己尝试。
答案 1 :(得分:1)
如果您使用的是Google页面,则很可能大多数链接会针对包含字符串中某处“google”的URI发起加载请求。我不确定这一点,但我认为即使Google搜索结果首先加载Google网址进行跟踪,然后再重定向到点击的实际网页。
尝试将NSLog(@"URL: %@", [request.URL absoluteString]);
添加到您的函数中,并查看该语句为何评估YES
。