统一的定义导航栏的背景颜色(NavigationController)

1.今天在公司有个需求就是要求修改所有的导航栏的背景颜色,所以现在就自己写一个自定义的NavgationController的功能。废话不多说直接上代码了。呵呵

2.在ZLNavigationController.m的文件的代码:

#import "ZLNavigationController.h" 

@interface ZLNavigationController ()

 @end

@implementation ZLNavigationController

 -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{

    if (self.viewControllers.count > 0) {

        viewController.hidesBottomBarWhenPushed = YES;

    }

    [super pushViewController:viewController animated:animated];

}

//只保证调用一次

 +(void)initialize{

   if (self == [ZLNavigationController class]) {

        //设置所有的导航了的背景颜色

        UINavigationBar  *bar = [UINavigationBar appearance];

         if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {

             [bar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];

            NSDictionary *dict =@{

                                  NSForegroundColorAttributeName:[UIColor whiteColor],

                                  NSFontAttributeName:[UIFont systemFontOfSize:16]

                                  };

            [bar setTitleTextAttributes:dict];

            //设置主题

            [bar setTintColor:[UIColor whiteColor]];

        }

}

这样就可以实现了navigationController的统一的导航栏的颜色呀!!,希望对你有帮助。

原文地址:https://www.cnblogs.com/zhufeng1994/p/5253497.html