UIBarButtonItemStyleDone не создает синие кнопки на панели навигации при нажатии контроллера - PullRequest
7 голосов
/ 23 ноября 2010

Я искал на нескольких разных форумах и не могу найти ответ на этот вопрос.Я добавил элемент кнопки панели в контроллер навигации и установил его стиль 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 Ответ

10 голосов
/ 23 ноября 2010

Вы используете предустановленный системный элемент, для которого свойство style ничего не делает.Вам нужно либо переключиться на фактический системный элемент UIBarButtonSystemItemDone (который синий, но говорит "Готово"), либо переключиться на использование либо -initWithImage:style:target:action: или -initWithTitle:style:target:action: и указать собственное изображение или текст.

...