Невозможно установить цвет строки состояния iOS для просмотра

Я разрабатываю приложение для iOS8, используя Swift 1.2.

Однако у меня проблема с цветом строки состояния (со временем, индикатором батареи и т. Д.).

В моем Info.plist файл, у меня есть UIViewControllerBasedStatusBarAppearance установлен в YES так же как Status bar style установлен в UIStatusBarStyleLightContent и затем во всех моих контроллерах представления в раскадровке у меня в строке состояния установлено "Легкое содержимое".

введите описание изображения здесь

Это работает для всех моих NavigationViewControllers и представления, встроенные в NavigationViewControllersоднако у меня один нормальный TableViewController который не встроен в NavigationControllerи когда я нажимаю это представление модально, строка состояния меняется на ЧЕРНЫЙ!???

Даже когда я смотрю на представление в редакторе раскадровки, оно отображается в виде белой строки состояния (обратите внимание на слабый белый индикатор заряда батареи справа на скриншоте ниже):

введите описание изображения здесь

Но когда я собираю и запускаю на своем iPhone, строка состояния отображается как черный...

Почему это? Как я могу это исправить? Я не знаю, что может быть неверным.

5 ответов

Решение

ОБНОВИТЬ:

Я нашел решение этой проблемы очень простым, из другой статьи Stackru ( Swift UIApplication.setStatusBarStyle не работает).

Для тех, кто хочет установить цвет строки состояния программным способом, я просто вставил следующий код в мой ViewController для рассматриваемого представления:

override func preferredStatusBarStyle() -> UIStatusBarStyle {

    return .LightContent

}

Пожалуйста, не забудьте добавить View controller-based status bar appearance (UIViewControllerBasedStatusBarAppearance) со значением NO в ваш Info.plist

Это настройки для UIStatusBar стиль:

  1. Идти к AppDelegate.swift в том, что добавить ниже строку кода в didFinishLaunchingWithOptions метод:

    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
    
  2. Добавьте ниже ключи в .plist файл.

  1. В раскадровке выберите свой контроллер UINavigationController или же UIViewController, И установить стиль строки состояния как Light Content

Для Swift 3

в вашем AppDelegate.swift файл в функции didFinishLaunchingWithOptions

UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent

Добавьте эту строку в свой Appdelegate.swift файл:

UIApplication.sharedApplication().statusBarStyle = .LightContent
Другие вопросы по тегам