(iOS 7 Xcode 5.0.2)
I used following methods, successfully change the status bar color to white on root view controller
[self setNeedsStatusBarAppearanceUpdate]; // Update status bar style
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent; // Set status bar color to white
}
Now I'm trying to change status bar color to black when navigate to child view controller, I don't know how to do it.(status bar color is still white)
I searched, and find this method: childViewControllerForStatusBarStyle I read Apple's document,But still don't know how to/where to use it, and I'm not sure if this is the right approach
Anyone knows how to change status bar color in child view controller?
By default, it seems that UINavigationController
unfortunately doesn't provide a sensible default implementation of childViewControllerForStatusBarStyle
. By implementing this method, you can tell your navigationController to defer all calls to preferredStatusBarStyle
to its topmost childViewController.
You could either subclass UINavigationController
and implement the method there, or simply add a category:
@implementation UINavigationController (ChildStatusBarStyle)
- (UIViewController *)childViewControllerForStatusBarStyle
{
return self.topViewController;
}
@end