微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在子视图控制器中更改iOS状态栏颜色

(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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐