有時候我們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;
}