см. «Изменение цвета UINavigationBarButtons»
РЕДАКТИРОВАТЬ: я удаляю ссылку, потому что домен не работает ...
Текст из кеша Google:
Хорошо, вот еще один быстрый совет.«Как изменить цвет кнопки на панели инструментов». Конечно, это можно применить к любой панели инструментов, но я собираюсь продемонстрировать процедуру на панели UINavigationBar.
На приведенном выше изображении показана только парацвета.По правде говоря, вы можете сделать кнопку любого цвета, который вы хотите.Фантастика!Код действительно прост для этого.Первое, что мы хотим сделать, это открыть файл заголовка для любого объекта, который будет поворачивать кнопку навигационной панели другого цвета и объявить класс пересылки UINavigationButton.Вы можете получить этот класс, либо перебирая подпредставления UINavigationBar, читая имена классов его подпредставлений, либо создавая дамп класса UIKit, если у вас есть взломанное устройство.
Поместите следующую строку перед объявлением интерфейса:
@class UINavigationButton;
Теперь объявите новый метод в заголовке, который мы будем использовать для фактического изменения цвета кнопки.
- (void)changeNavigationButtonColorToColor:(UIColor *)newColor
Или что-то похожее на строку кода выше.
Теперь откройте файл реализации вашего объекта и реализуйте описанный выше метод.В любом месте вашего файла добавьте следующий метод:
- (void)changeNavigationButtonColorToColor:(UIColor *)newColor {
for (UIView *view in self.navigationController.navigationBar.subviews) {
NSLog(@"%@", [[view class] description]);
if ([[[view class] description] isEqualToString:@"UINavigationButton"]) {
[(UINavigationButton *)view setTintColor:newColor];
}
}
}
Как вы можете видеть выше, на самом деле это намного проще, чем кажется на первый взгляд.Сначала мы создадим цикл for для итерации по подпредставлениям UINavigationBar, используя NSFastEnumeration.Затем мы выводим имя класса подпредставления для дальнейшего использования.Если имя класса UINavigationButton, то у нас есть наше представление.Все, что мы делаем, это устанавливаем свойство tintColor, если UINavigationButton.
Вот и все, все готово!
В качестве альтернативы, если вам нужна более широкая область, я бы предложил создать новую категорию UINavigationBarи поместив туда кнопку изменения цвета метода.Это ваш метод может быть выполнен любым классом, который использует UINavigationBar без необходимости повторного создания одного и того же метода снова и снова.
Помните, что кнопка "Назад" и кнопка навигации не одно и то же.Вам придется отдельно раскрасить кнопку возврата.
И, как обычно, вот ссылка на образец приложения, демонстрирующий этот код: NavButtonColor.zip