iOS去掉webview自带导航栏

有时候我们webView加载的网页有自己的导航栏,这样就和系统的导航栏重复了如下图:


二个导航栏

有二种方法解决:
1.隐藏系统的导航栏,和就是做交互来实现网页里返回事件(不推荐)。
2.隐藏网页导航(推荐)。
其实我们只要我们在webView的加载结束代理里隐藏掉html里的header标签就可以隐藏网页的导航栏。
代码如下:

 - (void)webViewDidFinishLoad:(UIWebView *)webView {
   // 1.获取页面标题
    NSString *string =@"document.title";

    //获取当前页面的title 设置导航栏标题
    NSString * title = [webViewstringByEvaluatingJavaScriptFromString:@"document.title"];

    self.title = title;
    [webView stringByEvaluatingJavaScriptFromString:string];

    // 2.去掉页面标题
    NSMutableString *str = [NSMutableStringstring];

    // 3.根据标签类型获取指定标签的元素
    [str appendString:@"var header = document.getElementsByTagName(\"header\")[0];”];

    //移除头部的导航栏
    [str appendString:@"header.parentNode.removeChild(header);"];

    [webView stringByEvaluatingJavaScriptFromString:str];
    [selfperformSelector:@selector(hidenaction)withObject:selfafterDelay:0.1];

}
 - (void)hidenaction{

   //开始加载时隐藏webview 加载完后显示,原因是 因为我们要去掉头标签,,去掉的方法是在网页加载完毕进行的,,添加一个延时现实的方法 可以隐藏掉网页先显示头标签又被移除的过程。使其看起来更自然一些
   self.webView.hidden =NO;

}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,507评论 25 709
  • 这本书相信很多人都听说过,在听说过的人中,有很多人读过,可是又有多少人,不是随它读过就过了呢? 我也问过一些读过这...
    庈公子阅读 1,508评论 0 0
  • 全世界只有不到3%的人微信搜索并且关注了 箫凌 你真是个特别的人 策划:箫凌「from Overture Stud...
    箫凌阅读 1,171评论 0 0
  • 微微妈 问:女孩4岁,爱哭,挑食。她有时候急了就哭,好像我们准备出门,她还没收好自己的东西就哭。她老是吃饭,不吃菜...
    爱儿注意力训练阅读 1,508评论 0 0

友情链接更多精彩内容