Скрыть строку состояния с помощью UINavigationBar barPositionTopAttached
У меня есть rootViewController - UINavigationController
, Как Вам известно UINavigationController
имеет UINavigationBar
, В iOS 7 UINavigationBar
может быть с barPosition topAttached. Я хочу скрыть ВКЛ / ВЫКЛ StatusBar, нажав на кнопку. Но я тоже этого хочу UINavigationBar
всегда должно быть barPositionTopAttached.
- (BOOL)prefersStatusBarHidden {
return __statusBarHidden;
}
- (IBAction)tapShowPhotosButton:(id)sender {
__statusBarHidden = !__statusBarHidden;
[self setNeedsStatusBarAppearanceUpdate];
}
Теперь UINavigationBar
изменено barPosition
от topAttached
наверх и так далее.
2 ответа
Я пишу в техподдержку и получаю следующий ответ:
Как указано в документации для, -positionForBar вызывается, когда брус должен знать свою позицию в новом окне. Он не будет вызываться, когда строка состояния скрывается или отображается. Контроллер навигации обрабатывает изменение размера панели навигации в ответ на изменение строки состояния. К сожалению, UINavigationController не предоставляет API для настройки поведения изменения размера панели навигации.
Попробуй это:
- (IBAction)tapShowPhotosButton:(id)sender
{
__statusBarHidden = !__statusBarHidden;
[[UIApplication sharedApplication] setStatusBarHidden:__statusBarHidden withAnimation:UIStatusBarAnimationSlide];
[self setNeedsStatusBarAppearanceUpdate];
}
Панель навигации должна автоматически перемещаться вместе со строкой состояния