UIBarButtonItemStyleDone does not create blue buttons in navigation bar when controller is pushed

我们两清 提交于 2019-12-23 08:51:20

问题


I've searched around on several different forums and can't seem to find an answer for this. I have added a bar button item to a navigation controller and set its style to UIBarButtonItemStyleDone. When this is the first controller on the navigation stack, the button properly shows up blue. However, when the controller is created and pushed onto the stack, the style is ignored and it shows up black.

I know that this problem occurs when the tintColor has been changed, but I am using the standard UIBarStyleBlack and not setting tintColor. I've tried setting tintColor to nil, as well, but that doesn't work either.

Relevant code:

- (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;
}

Any ideas or workarounds would be greatly appreciated.


回答1:


You're using a preset system item, for which the style property does nothing. You need to either switch to the actual UIBarButtonSystemItemDone system item (which is blue, but says "Done"), or switch to using either -initWithImage:style:target:action: or -initWithTitle:style:target:action: and supplying your own image or text.



来源:https://stackoverflow.com/questions/4251589/uibarbuttonitemstyledone-does-not-create-blue-buttons-in-navigation-bar-when-con

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!