最近項目中遇到了導航欄的很多坑,無非就是跳轉繼承問題蓬坡,也花了大量時間去解決導航欄的問題,不過首先還是謝謝各路大神的方法锐膜,我只不過是歸納了一下。
UITabBarController下面常常需要為多個ViewController設置導航欄樣式浪谴,以下 是UINavigationBar添加背景圖片(比較常見的方法)僅供參考开睡。
- 直接在視圖里面單獨設置每個視圖的UINavigationBar,適合每個頁面需要不同的導航欄樣式苟耻。
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"image"] forBarMetrics:UIBarMetricsDefault];
- 遍歷篇恒,在TabBarController里面寫一個方法,通過遍歷所有視圖的導航欄來設置凶杖。)
//遍歷所有視圖的導航欄
for (UINavigationController *navi in self.viewControllers) {
[navi.navigationBar setBackgroundImage:[UIImage imageNamed:@"image"] forBarMetrics:UIBarMetricsDefault];
}
- 為各個頁面建立一個共同的BaseNavigationController,設置好背景圖片胁艰。其他視圖控制器將它繼承下來,這也可以達到一個整體設置效果智蝠。
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"iamge"] forBarMetrics:UIBarMetricsDefault];
- 直接更改UINavigationBar的默認樣式腾么,這種方式和前一種的區(qū)別在于前者只是改變五個視圖的導航欄,而后者是作用在UINavigationBar上杈湾。
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"image"] forBarMetrics:UIBarMetricsDefault];
當然還有更多的方法解虱,這幾個方法都有在項目中試用,都能達到預期效果毛秘。