我在几个不同的论坛上搜索过,似乎无法找到答案。我已将一个条形按钮项添加到导航控制器并将其样式设置为UIBarButtonItemStyleDone。当这是导航堆栈上的第一个控制器时,该按钮正确显示蓝色。但是,当创建控制器并将其推入堆栈时,样式将被忽略并显示为黑色。
我知道更改tintColor时会出现此问题,但我使用的是标准UIBarStyleBlack而不是设置tintColor。我已经尝试将tintColor设置为nil,但这也不起作用。
相关代码:
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationItem.rightBarButtonItem =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(createNew:)];
self.navigationItem.rightBarButtonItem.style = UIBarButtonItemStyleDone;
}
非常感谢任何想法或变通方法。
答案 0 :(得分:10)
您正在使用预设系统项,style
属性不执行任何操作。您需要切换到实际的UIBarButtonSystemItemDone
系统项目(蓝色,但说“已完成”),或切换为使用-initWithImage:style:target:action:
或-initWithTitle:style:target:action:
并提供您自己的图片或文字