2015-06-28 2 views
0

В моем приложении iOS я использую UINavigationBar без UINavigationController. Как я могу установить цвет панели состояния приложения в соответствие с цветом моего UINavigationBar, который является обычным синим цветом? Пробовал, но не работает:iOS: настройка цвета статусной панели без использования UINavigationController

  • Установка UIViewControllerBasedStatusBarAppearance собственности в PLIST не имеет никакого эффекта
  • Установка barTintColor моего UINavigationBar не влияет на строку состояния, по-видимому, потому что это не управляется UINavigationViewController?
  • Установка UINavigationBar.appearance().barTintColor не работает либо

Любые предложения?

ответ

1

Хорошо, я просто понял это благодаря принятому ответу на этот вопрос: How to add custom navigation bar to a full-screen VC in iOS 7 and make it tint the status bar to match?

утвердят протокол UINavigationBarDelegate в вашем ViewController и реализовать следующий метод (Swift):

func positionForBar(bar: UIBarPositioning) -> UIBarPosition { 
    return UIBarPosition.TopAttached 
} 

По-видимому, все навигационные панели, расположенные в t его путь расширяет barTintColor до строки состояния.

+0

Это сработало для меня - просто помните, что вам нужно убедиться, что ваш контроллер просмотра установлен как делегат для 'UINavigationBar' либо явно в коде с: 'myNavigationBar.delegate = self' в' viewDidLoad' ИЛИ использовать конструктор интерфейса и подключить выход делегата панели навигации к контроллеру вида –

-2

Добавить этот метод в контроллере представления:

- (UIStatusBarStyle)preferredStatusBarStyle 
{ 
    return UIStatusBarStyleLightContent; // or UIStatusBarStyleDefault 
} 
+0

Спасибо за ответ, но, пожалуйста, прочитайте мой вопрос, я хочу совместить * цвет * моего UINavigationBar, который является обычным синим цветом в этом случае. – FalFire

+0

Строка состояния поставляется в двух вариантах. Что именно вы подразумеваете под сочетанием? – rounak

+0

Ну, если вы установили barTintColor UINavigationBar, когда он управляется UINavigationController, панель состояния получает тот же цвет. Моя проблема: это не происходит, когда вы используете UINavigationBar самостоятельно ... – FalFire

Смежные вопросы