Цвет кнопок UINavigationBar

Как изменить цвет кнопки в UINavigationBar? Например, я использую UINavigationBar со светло-серым фоном, и мне нужно, чтобы кнопки были темно-серыми (почти черными). Было бы здорово иметь одно решение для всех типов кнопок, то есть кнопку назад, кнопку с изображением, кнопку с текстом.

Благодарность


person Dmitry    schedule 19.01.2010    source источник
comment
Вы говорите о том, как это сделать с помощью кода или конструктора интерфейсов?   -  person shawnwall    schedule 20.01.2010


Ответы (1)


Это ужасный взлом, но, когда он помещен в -viewDidAppear: method (s), он изменит цвет фона (на самом деле, оттенок) UINavigationButtons.

UINavigationBar *navBar = [[self navigationController] navigationBar];
for (UIView *subview in [navBar subviews])
    {
    if ([NSStringFromClass([subview class]) isEqualToString:@"UINavigationButton"])
        {
        if (![[subview title] isEqualToString:@"Done"])
            [subview setTintColor:[UIColor colorWithRed:255.0/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:1.0]];
        }
    }

Однако он не изменит оттенок для UINavigationItemButtonViews - и это то, что используется для кнопок перехода назад. Если кто-то найдет способ повлиять на них, дайте мне знать.

person westsider    schedule 19.10.2010