RTRootNavigationController icon indicating copy to clipboard operation
RTRootNavigationController copied to clipboard

[UIBarButtonItem appearance] 设置失效

Open leavesster opened this issue 7 years ago • 2 comments

在空项目中,使用如下代码,设置

# 修改 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;

我查看了一下源码,似乎没有什么特别的头绪,想问一下作者大概可能会导致这个问题?

leavesster avatar Apr 08 '18 09:04 leavesster

transferNavigationBarAttributes = NO 试试?

rickytan avatar Apr 09 '18 11:04 rickytan

默认值就是NO,所以一开始就试过了,也不行。

leavesster avatar Apr 09 '18 12:04 leavesster