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

时间:2010-11-23 00:19:39

标签: 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;
}

非常感谢任何想法或变通方法。

1 个答案:

答案 0 :(得分:10)

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