我只是在UIWebView
中显示某个网址时才试图隐藏按钮。这是我用来执行此操作的代码:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request {
NSString *host = [request.URL host];
if ([host isEqualToString:@"http://example.com/cheese"]) {
_backButton.hidden = YES;
} else {
_backButton.hidden = NO;
}
return 0;
}
当我测试它以查看后退按钮是否隐藏时,它永远不会。无论是否加载“example.com/cheese”,它都保持清晰。 (那个/奶酪部分也非常重要,也许它只是检查主机而不是完整的URL?)
无论哪种方式,我都不知道要改变什么或添加以使其工作。非常感谢任何帮助!
更新:我在if
语句之前添加了一个NSLog,它甚至没有触发。我还将代码更改为以下答案(再次感谢rmaddy)。我不知道为什么这个方法没有解雇。
答案 0 :(得分:1)
网址的host
部分就是主机。如果URL是:
然后host
只是example.com
。
如果您想比较完整的网址,请执行以下操作:
NSString *full = [request.URL absoluteString];
if ([full isEqualToString:@"http://example.com/cheese"]) {
}
如果您只想比较主机,请执行以下操作:
NSString *host = [request.URL host];
if ([host isEqualToString:@"example.com"]) {
}
奇怪的是,你发布的第二段代码中的代码是正确的。你发布的第一段代码是错误的。
此外,在第一个代码块中,您最后会调用return 0
。您应返回YES
或NO
,因为返回类型为BOOL
。