Цвет оттенка строки состояния меняется на черный в iOS 6
Я, по-видимому, не понимаю, как использовать оттенок строки состояния в iOS 6. Я читал этот вопрос: Изменение цвета оттенка строки состояния но реализация предложенных там решений не решила проблему.
Я настроил параметры в панели сводка по цели (по умолчанию для стиля и тонировки) и добавил словарь параметров оттенка строки состояния в свою информацию.plist, как описано в WWDC 2012 Advanced Appearance Customization.
Моя строка состояния подкрашивается правильно при запуске, но как только я перехожу к другому контроллеру вида, строка состояния меняется на черную.
Второй контроллер вида встроен в собственный навигационный контроллер. Может ли это быть корнем проблемы?
Какова бы ни была причина, я надеюсь, что кто-то может предложить решение, которое позволит мне сделать мою строку состояния тонированной последовательно на протяжении всего моего приложения.
Пожалуйста, дайте мне знать, если что-то нуждается в уточнении и заранее спасибо за любую помощь.3 ответа:
Сегодня я столкнулся с тем же вопросом, но ни один из подслащенных ответов не помог мне.
Поскольку я определил свой собственный цвет (красный, синий, зеленый, Альфа), я не хотел добавлять UIStatusBar через IB, мне нужно однострочное решение.После тестирования на некоторое время для меня сработало следующее:
- в сводке проекта выберите в раскрывающемся меню Стиль строки состояния Black Transculent.
В
application: didFinishLaunchingWithOptions:
введите следующую строку код:
self.window.backgroundColor = [UIColor redColor]; //example color
Почему-то это не сработало бы для меня при установке стиля через код в
application: didFinishLaunchingWithOptions:
Наслаждайтесь!
Одним из решений является установка невидимой навигационной панели перед вашим интерфейсом. Вам может потребоваться подкласс UINavigationController, если вы уже находитесь в навигационном интерфейсе. Например:
UINavigationBar* nav = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,320,1)]; nav.tintColor = [UIColor redColor]; nav.alpha = 0; [self.navigationBar.superview addSubview:nav];
Это приводит к тому, что строка состояния становится красной, независимо от оттенка или цвета фона панели навигации. Это также работает, если нет панели навигации.
Кредит, где кредит должен быть; я получил идею установки
alpha
в 0 из https://stackoverflow.com/a/13587525/341994 .
Второй контроллер вида встроен в собственную навигацию. контроллер. Может ли это быть корнем проблемы?
Это, скорее всего, проблема - но я также думал, что запись plist сделает ее глобальной. Вы пробовали установить его программно с помощью UIAppearance (предполагая, что вы поддерживаете только ios6+)?
[[UITabBar appearance] setTintColor:[UIColor redColor]];