按下控制器时,UIBarButtonItemStyleDone不会在导航栏中创建蓝色按钮

Cam*_*ron 7 iphone uinavigationbar uibarbuttonitem uibarbuttonitemstyle

我在几个不同的论坛上搜索过,似乎无法找到答案.我已将一个条形按钮项添加到导航控制器并将其样式设置为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;
}
Run Code Online (Sandbox Code Playgroud)

任何想法或解决方法将不胜感激.

gra*_*rks 10

您正在使用预设系统项目,该style属性不执行任何操作.您需要切换到实际的UIBarButtonSystemItemDone系统项目(蓝色,但说"完成"),或切换到使用-initWithImage:style:target:action:-initWithTitle:style:target:action:提供您自己的图像或文本.