см "Изменение цвета UINavigationBarButtons"
EDIT: Я удалить ссылку, так как домен вниз ...
это текст из кеша google:
Хорошо, вот еще один быстрый совет. «Как изменить цвета кнопки на панели инструментов». Конечно, это может быть применено к любой панели инструментов, но я собираюсь продемонстрировать процедуру на UINavigationBar.
На приведенном выше изображении показано только несколько цветов. По правде говоря, вы можете сделать кнопку любого цвета, который вы хотите. Фантастика! Код действительно прост в этом. Первое, что мы хотим сделать, - открыть файл заголовка для любого объекта, который будет поворачивать кнопку навигационной панели другого цвета и объявлять передний класс UINavigationButton. Вы можете получить этот класс, либо выполнив итерацию через subviews UINavigationBar, прочитав его имена классов subviews, или с помощью класса 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 для итерации через subviews UINavigationBar с использованием NSFastEnumeration. Затем мы выводим имя класса subview для дальнейшего использования. Если имя класса UINavigationButton, то у нас есть наше представление. Все, что мы делаем, - это свойство tintColor, если UINavigationButton.
Всё, все готово!
Альтернативно, если вы хотите расширить область видимости, я бы предложил создать новую категорию UINavigationBar и поместить туда метод изменения цвета кнопки. Это был ваш метод, который может выполнять любой класс, который использует UINavigationBar без повторного создания одного и того же метода снова и снова.
Помните, что кнопка «Назад» и кнопка навигации - это не одно и то же. Вам придется отдельно окрасить кнопку «Назад».
И, как обычно, вот ссылка на пример приложения, который демонстрирует этот код: NavButtonColor.zip
спасибо друг !!!!! –