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;

}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容