在ILNavigationController.m中
[bar setTintColor:[UIColor whiteColor]];设置主题颜色为白色
这个变白了,ios6不行 一坨白,需要设置uibarbuttonitem背景图片
// 第一次使用这个类或者这个类的子类的时候
+ (void)initialize
{
if (self == [ILNavigationController class]) { // 肯定能保证只调用一次
// 1.设置全局导航条外观
[self setupNav];
if (ios7) return; // 不需要设置全局barButton外观
// 2.设置全局barButton外观
[self setupBarButton];
}
}
#warning 设置全局导航条
+ (void)setupNav
{
// 获取应用程序中所有的导航条
// 获取所有导航条外观
UINavigationBar *bar = [UINavigationBar appearance];
UIImage *navImage = nil;
if (ios7) {
navImage = [UIImage imageNamed:@"NavBar64"];
}else{
navImage = [UIImage imageNamed:@"NavBar"];
}
[bar setBackgroundImage:navImage forBarMetrics:UIBarMetricsDefault];
NSDictionary *dict = @{
NSForegroundColorAttributeName : [UIColor whiteColor],
NSFontAttributeName : [UIFont systemFontOfSize:15]
};
[bar setTitleTextAttributes:dict];
// 设置导航条的主题颜色
[bar setTintColor:[UIColor whiteColor]];
}
#warning 设置全局的UIBarButton外观
+ (void)setupBarButton
{
// 获取所有UIBarButton的外观
UIBarButtonItem *buttonItem = [UIBarButtonItem appearance];
// 设置UIBarButtonItem的背景图片
[buttonItem setBackgroundImage:[UIImage imageNamed:@"NavButton"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[buttonItem setBackgroundImage:[UIImage imageNamed:@"NavButtonPressed"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
// 设置返回按钮的背景图片
[buttonItem setBackButtonBackgroundImage:[UIImage imageNamed:@"NavBackButton"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[buttonItem setBackButtonBackgroundImage:[UIImage imageNamed:@"NavBackButtonPressed"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
}