Не удается скрыть строку состояния при запуске

Я создаю приложение iOS 9 с навигацией страниц horizontal и вам нужно показать строку состояния на некоторых страницах и скрыть ее на других. Я хочу использовать анимацию fade in/out, поэтому мне нужно установить

View controller-based status bar appearance = NO

и обновите строку состояния следующим образом:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

Эта процедура отлично работает при навигации по страницам, но я не могу избавиться от строки состояния при запуске.

Я пробовал установку: Status bar is initially hidden = YES

Добавьте это к NavigationControllers viewDidLoad:

[[UIApplication sharedApplication] setStatusBarHidden:YES];
self.statusBarHidden = YES;
[self setNeedsStatusBarAppearanceUpdate];

Добавление этого в AppDelegates doneFinishLaunchingWithOptions:

application.statusBarHidden = YES;

Добавление этого в ViewController исходной страницы:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

Проверка опции "Скрыть строку состояния" в разделе "Общие сведения" > "Сведения о развертывании"

И установка "Строка состояния" на "Нет" в связанном элементе раскадровки

Но строка состояния все еще отображается при запуске. Как я могу избавиться от строки состояния при запуске без изменения значения View controller-based status bar appearance?

Ответ 1

Оказывается, что я делал правильно, но в унаследованном коде был погребенный [[UIApplication sharedApplication] setStatusBarHidden:NO];. Я сделал это, но не заметил эту линию...

(используйте git grep StatusBar, чтобы найти строки кода в репозитории git, которые мутируют строку состояния)

Кроме того, необходим только следующий код:

View controller-based status bar appearance = NO (в plist)

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

в любом месте, когда строка состояния нуждается в обновлении (обычно в viewWillAppear)

Ответ 2

Просто отметьте строку состояния скрыть в настройке проекта, как показано ниже.

  • Настройка проекта - для скрытия строки состояния при запуске приложения.

Скрыть строку состояния

  1. Добавьте ниже в viewController, для которого вам нужно скрыть.

- (BOOL)prefersStatusBarHidden { return YES; }

/------ ОБНОВЛЕНИЕ -----/

  • С тиком строки состояния hide Без строки состояния

  • Без тика строки состояния hide со строкой состояния

/------ Строка состояния анимации -----/

В plist.

View controller-based status bar appearance = NO

Затем в viewWillAppear метод.

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

Ответ 3

changing plist file : 

set Status bar is initially hidden = YES

add row: View controller-based status bar appearance = NO

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

Ответ 4

Чтобы добиться того, что вы ищете, вам нужно установить в файле app.plist:

Status bar is initially hidden до YES

View controller-based status bar appearance to NO

Затем в каждом представлении контроллера показать он

[[UIApplication sharedApplication] setStatusBarHidden:NO];

или скрыть:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

Ответ 5

Goto Targets- > General- > Информация о развертывании: и при этом выберите "Скрыть панель состояния".