IOS 5 Как изменить цвет кнопки «Назад» на панели навигации? - PullRequest
13 голосов
/ 28 октября 2011

Я хочу изменить цвет кнопки «Назад» навигационной панели, чтобы она выглядела так: enter image description here

Ответы [ 5 ]

63 голосов
/ 28 октября 2011

Установите backBarButtonItem tintColor:

self.navigationItem.backBarButtonItem.tintColor = [UIColor redColor];

СОВЕТ : если вы хотите, чтобы это применялось к всем UIBarButtonItem экземплярамв вашем приложении по умолчанию вы можете использовать новый API UIAppearance, чтобы сделать это:

[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];
8 голосов
/ 07 февраля 2012

Первая строка ответа Джейкоба у меня не сработала, потому что backBarButtonItem был NULL. Это NULL, потому что он был создан позже автоматически при переключении на другой ViewController. В это время вы можете установить название кнопки с помощью

self.title = @"nice title"; // self is here the view(controller) within the popoverController

но вы не можете установить tintColor.

Что сработало для меня, так это создание нового UIBarButtonItem без какого-либо стиля. Затем установите заголовок и свойства цвета и установите его как backBarButtonItem.

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] init];
backButton.title = @"go back - now!";
backButton.tintColor = [UIColor colorWithRed:0.1 green:0.5 blue:0.7 alpha:1.0];
self.navigationItem.backBarButtonItem = backButton;
[okButton release];
3 голосов
/ 15 ноября 2012

Если вы хотите, чтобы кнопка выглядела точно так же, как на картинке, вы также можете использовать изображение:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"back_button_bg"]
                                        forState:UIControlStateNormal
                                      barMetrics:UIBarMetricsDefault];

Фоновое изображение должно быть изменяемого размера для получения хороших результатов.

0 голосов
/ 08 мая 2014
[[UINavigationBar appearance]setTintColor:[UIColor whiteColor]];

попробуй это у меня работает ...

0 голосов
/ 14 апреля 2013

Лучший способ установить его глобально или локально -

    [[UIBarItem appearance] setTitleTextAttributes:
         [NSDictionary dictionaryWithObjectsAndKeys:
         [UIColor colorWithRed:220.0/255.0 green:104.0/255.0 blue:1.0/255.0 alpha:1.0], UITextAttributeTextColor, 
         [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0], UITextAttributeTextShadowColor, 
         [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset, 
         [UIFont fontWithName:@"AmericanTypewriter" size:0.0], UITextAttributeFont, 
      nil] 
        forState:UIControlStateNormal];
...