对导航条的统一设置

比如说我们要设置导航条的背景或者颜色,我们可以在导航控制器的+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];

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容