(iOS 7
Xcode 5.0.2)
我使用以下方法,在根视图控制器上成功将状态栏颜色更改为白色
[self setNeedsStatusBarAppearanceUpdate]; // Update status bar style -(UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; // Set status bar color to white }
导航到子视图控制器时,我正在尝试将状态栏颜色更改为黑色,我不知道该怎么做.(状态栏颜色仍为白色)
我搜索了一下,找到了这个方法:childViewControllerForStatusBarStyle
我读过Apple的文档,但仍然不知道如何/在哪里使用它,我不确定这是否是正确的方法
任何人都知道如何更改子视图控制器中的状态栏颜色?
解决方法
默认情况下,UINavigationController似乎不提供childViewControllerForStatusBarStyle的合理默认实现.通过实现此方法,您可以告诉您的navigationController将对preferredStatusBarStyle的所有调用推迟到其最顶层的childViewController.
你可以子类化UINavigationController并在那里实现方法,或者只是添加一个类别:
@implementation UINavigationController (ChildStatusBarStyle) - (UIViewController *)childViewControllerForStatusBarStyle { return self.topViewController; } @end