对导航条的统一设置

比如说我们要设置导航条的背景或者颜色,我们可以在导航控制器的+initialize方法里面做一次性设置

// 第一次加载这个类的时候调用,当程序一启动的时候就会把这个类加载进内存

// 作用:为类分配一个内存

//+ (void)load

//{

//    NSLog(@"%s",__func__);

//}

// 当前类或者它的子类第一次使用的时候调用

// 初始化一个类

// 不一定只会调用一次,比如说如果有很多子类,第一次使用子类的时候,这个方法会调用多次

+ (void)initialize

{

if (self == [XMGNavigationController class]) { // 判断下是否是当前类对象在调用

// 设置导航条的背景,文字颜色

// 谁用我的导航控制器,只设置使用自己导航控制器下的导航条

// 获取整个app里所有导航条外观的标志

//    UINavigationBar *bar = [UINavigationBar appearance];

// 获取当前类下的导航条

// self->XMGNavigationController

UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:self, nil];

// Do any additional setup after loading the view.

// 设置导航条背景图片,必须填UIBarMetricsDefault

// 使用UIBarMetricsDefault,导航控制器的子控制器view的尺寸不包括导航条部分

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

// 设置导航条文字颜色

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

// 设置颜色

dict[NSForegroundColorAttributeName] = [UIColor whiteColor];

dict[NSFontAttributeName] = [UIFont boldSystemFontOfSize:22];

[bar setTitleTextAttributes:dict];

// 统一设置导航条按钮的颜色

[bar setTintColor:[UIColor whiteColor]];

// 获取UIBarButtonItem

UIBarButtonItem *item = [UIBarButtonItem appearanceWhenContainedIn:self, nil];

// 设置导航条返回按钮的文字的位置

[item setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -64) forBarMetrics:UIBarMetricsDefault];

}

}

你可能感兴趣的:(对导航条的统一设置)