统一的定义导航栏的背景颜色(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的统一的导航栏的颜色呀!!,希望对你有帮助。