RTRootNavigationController
RTRootNavigationController copied to clipboard
[UIBarButtonItem appearance] 设置失效
在空项目中,使用如下代码,设置
# 修改 UIBarButtonItem 样式
[[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UINavigationBar class]]] setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14], NSForegroundColorAttributeName: [UIColor orangeColor]} forState:UIControlStateNormal];
[[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UINavigationBar class]]] setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:15], NSForegroundColorAttributeName: [UIColor redColor]} forState:UIControlStateHighlighted];
# 设置rightBarButtonItem
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"测试" style:UIBarButtonItemStylePlain target:self action:@selector(didReceiveMemoryWarning)];
backBarButtonItem leftBarButtonItem rightBarButtonItem(这个未测试),都可以起效。
但是在使用 RTRootNavigationController 的控件中使用,就不起效。
而且即使直接使用 appearance ,而不是 appearanceWhenContainedInInstancesOfClasses 也是一样无效。
为了防止其他控件干扰,我直接在RTRootNavigationController的Demo进行了这些操作。并在 RTStaticTableViewController 中设置了以下属性: self.rt_navigationController.transferNavigationBarAttributes = YES;
我查看了一下源码,似乎没有什么特别的头绪,想问一下作者大概可能会导致这个问题?
transferNavigationBarAttributes = NO 试试?
默认值就是NO,所以一开始就试过了,也不行。