Не удается скрыть строку состояния при запуске
Я создаю приложение 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
Просто отметьте строку состояния скрыть в настройке проекта, как показано ниже.
- Настройка проекта - для скрытия строки состояния при запуске приложения.
![Скрыть строку состояния]()
- Добавьте ниже в viewController, для которого вам нужно скрыть.
- (BOOL)prefersStatusBarHidden {
return YES;
}
/------ ОБНОВЛЕНИЕ -----/
/------ Строка состояния анимации -----/
В 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- > Информация о развертывании: и при этом выберите "Скрыть панель состояния".