Руководство по переходу iOS 7 дает хороший совет по динамическому изменению UIStatusBarStyle
в UIViewController
с помощью
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
вместе с [self setNeedsStatusBarAppearanceUpdate];
Это отлично работает в приложении с одним представлением. Однако теперь я пытаюсь изменить UIStatusBarStyle
в модальном виде на UIStatusBarStyleLightContent
. Существует MainViewController
, который отделяется от ModalViewController
, который сам встроен в NavigationController
. ModalViewController
установил свой делегат в MainViewController
.
Я попытался вызвать [self setNeedsStatusBarAppearanceUpdate];
в ModalViewController
вместе со следующим методом в этом классе без эффекта:
// In ModalViewController.m
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
Я также попытался вызвать [self setNeedsStatusBarAppearanceUpdate];
в MainViewController
в prepareForSegue: sender:
методе с условиями в - (UIStatusBarStyle)preferredStatusBarStyle {}
, чтобы вернуть UIStatusBarStyleLightContent
, когда представлен модальный вид, но также не имеет эффектов.
Как я могу изменить UIStatusBarStyle в модальном представлении?
РЕДАКТИРОВАТЬ: Сообщение обновлено: мне нужно отметить, что ModalViewController
встроен в NavigationController
с NavigationBar
. С NavigationBar
, установленным в скрытый до вызова [self setNeedsStatusBarAppearanceUpdate];
в ModalViewController
, работает нормально. Но не тогда, когда панель видна.