ios开发之自定义导航栏

最近项目中遇到了导航栏的很多坑,无非就是跳转继承问题,也花了大量时间去解决导航栏的问题,不过首先还是谢谢各路大神的方法,我只不过是归纳了一下。

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的默认样式,这种方式和前一种的区别在于前者只是改变五个视图的导航栏,而后者是作用在UINavigationBar上。
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"image"] forBarMetrics:UIBarMetricsDefault];

当然还有更多的方法,这几个方法都有在项目中试用,都能达到预期效果。

你可能感兴趣的:(ios开发之自定义导航栏)