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

Как установить стиль строки состояния для освещения контента на iOS7?

Я попробовал несколько решений от SO для этой проблемы, но никто из них не работал у меня. Я создал новый проект iOS7 с одним простым представлением. Я попытался установить

View controller-based status bar appearance to NO

и в AppDelegate:

[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];

Однако это полностью удаляет строку состояния.

Без опции отображения строки состояния на панели управления View, независимо от того, что я установил для стиля строки состояния в файле plist, текст строки состояния по-прежнему остается черным. Мне нужно, чтобы он был белым для всего приложения. Возможно ли это?

Я нахожусь в последней версии xcode.

4b9b3361

Ответ 1

Вы пробовали это без "Анимированные: Нет"?

Перейдите на вкладку "Информация" цели проекта, "Добавить строку":

UIViewControllerBasedStatusBarAppearance, установить значение NO

Затем в appdelegate.m

- (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[application setStatusBarStyle:UIStatusBarStyleLightContent];
}

Это должно широко использовать приложение.

Ответ 2

Принятый ответ, похоже, работал иногда. Я узнал, что UIViewController также может изменить стиль строки состояния. Чтобы обойти это и всегда работать, я не нуждаюсь в UIViewControllers, контролирующем строку состояния, мне пришлось установить UIViewControllerBasedStatusBarAppearance в NO в мой Info.plist

Ответ 3

Используйте needsStatusBarAppearanceUpdate для обновления строки состояния в viewDidLoad: методе контроллера просмотра

[self setNeedsStatusBarAppearanceUpdate];

Теперь добавьте ниже метод в контроллер просмотра:

- (UIStatusBarStyle) preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

Ответ 4

Я бы пошел с ответом Логана. Начиная с IOS 9, метод UIApplication setStatusBarStyle: устарел, так или иначе, поэтому вы захотите отказаться от использования этого. Предпочтительным методом является реализация preferredStatusBarStyle в вашем ViewController, как описано в Logan.