The iOS 7 Transition Guide give a good hint how to change the UIStatusBarStyle
dynamically in a UIViewController
using
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
together with [self setNeedsStatusBarAppearanceUpdate];
This works fine in a single view application. However, I'm now trying to change the UIStatusBarStyle
in a modal view to UIStatusBarStyleLightContent
. There is a MainViewController
which segues to the ModalViewController
, which itself is embedded in a NavigationController
. The ModalViewController
has set its delegate to the MainViewController
.
I tried to call [self setNeedsStatusBarAppearanceUpdate];
in the ModalViewController
together with the following method in that class without effect:
// In ModalViewController.m
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
I also tried to call [self setNeedsStatusBarAppearanceUpdate];
in MainViewController
on prepareForSegue: sender:
method with conditions in - (UIStatusBarStyle)preferredStatusBarStyle {}
to return UIStatusBarStyleLightContent
when the modal view is presented - but that has no effects, too.
How can I change the UIStatusBarStyle in the modal view?
EDIT: Post updated: I need to mention that the ModalViewController
is embedded in a NavigationController
with a NavigationBar
. With NavigationBar
set to hidden to above call of [self setNeedsStatusBarAppearanceUpdate];
in ModalViewController
works fine. But not when the Bar is visible.