Подтвердить что ты не робот

Настройка navigationBar в iOS7 - цвет заголовка не работает

Я пытаюсь настроить navigationBar контроллера навигации в iOS7, а цвет заголовка не меняется. Я делаю следующее:

    [navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:46.0f/256.0f green:46.0f/256.0f blue:46.0f/256.0f alpha:1]];
    [navigationController.navigationBar setTranslucent:NO];
    [navigationController.navigationBar setTitleTextAttributes:@{[UIColor whiteColor]:UITextAttributeTextColor}];
    [self presentViewController:navigationController animated:YES completion:nil];

Получающая способность navigationBar отключается, и она темная, но заголовок также остается темным. Я также попытался создать пользовательский ярлык и установить его как вид заголовка с большой удачей.

Как изменить цвет заголовка?

4b9b3361

Ответ 1

[navigationController.navigationBar setBarStyle:UIBarStyleBlack];

Ответ 2

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

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

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

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

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

Я бы поставил этот внешний вид api в свой делегат приложения didFinishLaunchingWithOptions.

UPDATE: возможно также разместить эквиваленты Swift.

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

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

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

UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]

Ответ 3

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

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

Edit:

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

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,nil]];

Ответ 4

В быстрой последовательности вы сделаете следующее:

self.navigationController.navigationBar.titleTextAttributes = [
    NSForegroundColorAttributeName : UIColor.redColor(),
    NSFontAttributeName : UIFont.systemFontOfSize(20)
]

Ответ 5

версия Swift + UIAppearance:

    UINavigationBar.appearance().barTintColor = .blackColor()
    UINavigationBar.appearance().barStyle = .Black

Ответ 6

Проблема в OP-коде - это строка:

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

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

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

Ответ 7

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

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

работы.