2015-03-11 1 views
1

У меня есть UINavigationBar с голубым оттенком, установленный его внешний вид:Как установить оттенок одного UIBarButtonItem в навигационной панели

[UINavigationBar appearance].tintColor = [UIColor blueColor]; 

Во время навигации у меня есть один UIBarButtonItem, подключенный к розетке, то Я хочу красный! Так наивно, как я хотел, чтобы все остальные кнопки моего бара синий, я попробовал, что в viewWillAppear: обратного вызова:

self.myOughtToBeRedButton.tintColor = [UIColor redColor]; 

И угадайте, что? Он еще синий !!!

Если кто-то есть идея ... мне нужно TUN его на обоих IOS 7 & IOS 8.

Заранее спасибо.

+0

Хотите изменить цвет текста UIBarButtonItem? –

+0

Да, точно! Это то, что должен сделать tintColor (по крайней мере, это то, что он делает в Interface Builder) – Zaphod

+0

Попробуйте переместить этот код в viewDidAppear: –

ответ

1

Вы можете сделать это, установив UIBarButtonItem «s текста заголовка атрибутов в viewDidLoad:

actionButtonItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.redColor()], forState: .Normal) 

Это одна кнопка будет красной, а остальные элементы будут использовать навигационный бар tintColor. Не требуется настраиваемая кнопка.

+0

Спасибо за ваш ответ, но это только меняет цвет текста. Мне нужно изменить оттенок, например, когда кнопка отображает глиф. – Zaphod

0

Если вы хотите сохранить оригинальное изображение UIBarButton. Измените тип o render на Images.xcassets. Как это: