7

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

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

4

1 回答 1

10

您正在使用预设的系统项目,该style属性对此不执行任何操作。您需要切换到实际的UIBarButtonSystemItemDone系统项目(它是蓝色的,但显示“完成”),或者切换到使用-initWithImage:style:target:action:-initWithTitle:style:target:action:并提供您自己的图像或文本。

于 2010-11-23T00:43:04.770 回答