Настройка панели навигации в iOS 7 - цвет заголовка не работает

Оберните это в функцию, а затем просто return.

29
задан Antoine 19 February 2015 в 11:53
поделиться

8 ответов

[navigationController.navigationBar setBarStyle:UIBarStyleBlack];
7
ответ дан Dániel Nagy 19 February 2015 в 11:53
поделиться

Внешний вид API продолжает развиваться, и теперь UITextAttributeTextColor заменяется на NSForegroundColorAttributeName.

[navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

Я добавлю две вещи:
Сначала идет ключ, затем объект.

Если вы хотите глобально изменить атрибуты заголовка вашего контроллера навигации, используйте API внешнего вида:

[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];

Я бы поместил вызов API внешнего вида в метод didFinishLaunchingWithOptions делегата приложения.

ОБНОВЛЕНИЕ: может также опубликовать эквиваленты Свифта.

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

self.navigationController.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]

Чтобы изменить внешний вид панели навигации во всем приложении, можно использовать:

UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]
65
ответ дан Alladinian 19 February 2015 в 11:53
поделиться

Не работает для меня. Использование UINavigation в качестве модального контроллера вида.

Очевидно, цвет заголовка должен быть установлен на уровне приложения

Редактировать:

Лучший способ - изменить заголовок навигации в каждом контексте VC:

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,nil]];
11
ответ дан wolffan 19 February 2015 в 11:53
поделиться

Версия Swift + UIAppearance:

    UINavigationBar.appearance().barTintColor = .blackColor()
    UINavigationBar.appearance().barStyle = .Black
4
ответ дан superarts.org 19 February 2015 в 11:53
поделиться

В быстром вы будете делать следующее:

self.navigationController.navigationBar.titleTextAttributes = [
    NSForegroundColorAttributeName : UIColor.redColor(),
    NSFontAttributeName : UIFont.systemFontOfSize(20)
]
4
ответ дан Antoine 19 February 2015 в 11:53
поделиться

Проблема в коде OP заключается в следующей строке:

[navigationController.navigationBar setTitleTextAttributes:@{[UIColor whiteColor]:UITextAttributeTextColor}];

Имя и значение атрибута цвета текста смешиваются. Это должно быть

[navigationController.navigationBar setTitleTextAttributes:@{UITextAttributeTextColor:[UIColor whiteColor]}];
3
ответ дан mhoeller 19 February 2015 в 11:53
поделиться

на самом деле выглядит как ошибка. Попробуйте

myViewcontroller.title = @"";
navigationController.navigationBar.barStyle = UIBarStyleBlack;
myViewcontroller.title = @"TITLE";

работает.

0
ответ дан Jason 19 February 2015 в 11:53
поделиться

В Swift 4

NSForegroundColorAttributeName было переименовано в NSAttributedString.Key.foregroundColor

Так что, если вы хотите изменить заголовок навигационного элемента цвет:

let navBarAppearance = self.navigationController!.navigationBar    
navBarAppearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]


Я использовал UIColor.white , просто вставьте любой UIColor , который вы хотите, чтобы заголовок был.

0
ответ дан Richard Poutier 19 February 2015 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: