iPhone - Как установить собственный цвет на панели навигации элемента «Еще»? - PullRequest
0 голосов
/ 23 ноября 2010

G'day All

Это небольшая деталь, но она влияет на профессиональную отделку моего приложения.

Мое приложение следует шаблону панели вкладок с панелью навигации на каждомвкладка с более чем 5 вкладками, следовательно, «Больше».У меня есть пользовательский оттенок, примененный к панели навигации, но я не смог найти способ получить доступ к панели навигации элемента «Дополнительно», чтобы установить оттенок на нем.Может кто-нибудь сказать мне, как?

Обновление ...

Следуя предложению категории на UINavigationBar Я использовал этот код ...

@implementation UINavigationBar (UINavigationBar_Additions)

- (void)drawRect:(CGRect)rect {
    UIColor *color = [UIColor colorWithRed:0.862745098039216
                                     green:0.568627450980392
                                      blue:0.098039215686275
                                     alpha:1];
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
    CGContextFillRect(context, rect);
    [self setBarStyle:UIBarStyleBlack];
    [self setTintColor:color];
}

@end

ПомимоПредупреждение Apple (по причинам, которые, как мне кажется, имеют смысл) о том, что не нужно переопределять скрытые методы, подобные этому, оно также теряет градиент на UINavigationBar, и я бы предпочел оставить то, что делает мой нынешний подход к установке оттенка в viewDidLoad.

Любые предложения о том, как я могу взять свой торт и съесть его тоже.

TIA, Pedro:)

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010

Ранее он был покрыт в StackOverflow , что указывает на этот блог , но ответ заключается в следующем:

tabBarController.moreNavigationController.navigationBar.tintColor =
[UIColor orangeColor];
1 голос
/ 23 ноября 2010

Добавить категорию в UINavigationBar и переопределить -drawRect :?(Вместо этого вы можете делать забавные вещи, такие как рисование изображения ...)

...