Руководство по переходу 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, работает нормально. Но не тогда, когда панель видна.