我正在使用一些 url 加载 webview:
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://abc-ecatalogue.xyz-ar.com/"]]];
然后我正在检查是否正在加载主页然后我不想要我正在使用的导航栏:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
// Here you can check the URL
NSURL *url = [request URL];
NSString*str=@"http://abc-ecatalogue.xyz-ar.com";
if ([url.absoluteString isEqualToString:@"http://havells-ecatalogue.adstuck-ar.com/"])
{
self.navigationController.navigationBarHidden = YES;
NSLog(@"hello");
return NO;
}
else
{
self.navigationController.navigationBarHidden = NO;
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:self action:@selector(Back)];
self.navigationItem.leftBarButtonItem = backButton;
}
return YES;
}
但是当控件进入循环时, WebView 没有加载,我打印的日志被连续打印。
最佳答案
您在 if
和 else
部分都有 self.navigationController.navigationBarHidden = NO;
。您应该在 if 部分将其更改为 YES
。
编辑:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
// Here you can check the URL
NSURL *url = [request URL];
NSString*str=@"http://abc-ecatalogue.xyz-ar.com";
if ([url.absoluteString isEqualToString:@"http://havells-ecatalogue.adstuck-ar.com/"]) {
self.navigationController.navigationBarHidden = YES;
NSLog(@"hello");
} else {
self.navigationController.navigationBarHidden = NO;
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:self action:@selector(Back)];
self.navigationItem.leftBarButtonItem = backButton;
}
return YES;
}
关于ios - webView ShouldStartLoadRequest 方法无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23751808/