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

在iOS 7中使用Tint Color可以看到导航栏时,白色状态栏消失

我有2个UIViewControllers.在第一个UIViewController中,比如说ViewController1,我保持隐藏UINavigationBar.由于我的应用程序的主题是黑色的,所以我需要iOS 7中的白色UIStatusBar,以便它在黑色UINavigationBar中不会变得不可见.为了获得白色UIStatusBar,我在iOS 7中使用此方法.

>在plist中将UIViewControllerBasedStatusBarappearance设置为YES
>在viewDidLoad做一个[自我
setNeedsstatusBarappearanceUpdate];
>添加以下方法

-(UIStatusBarStyle)preferredStatusBarStyle{ 
  return UIStatusBarStyleLightContent; 
}

我在ViewController1中时工作正常.但是当我移动到ViewController2时,如果我设置了

self.navigationController.navigationBarHidden = NO

在我的viewDidLoad方法中.然后上面的白色UIStatusBar代码不起作用. UIStatusBar变黑了,我看不到它,因为我使用以下代码自定义我的UINavigationBar

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor];
self.navigationController.navigationBar.translucent = NO;

如果我保持UINavigationBar像ViewController1一样隐藏,那么白色UIStatusBar再次可见.但是当UINavigationBar可见时,状态栏再次变为黑色.那就是问题所在.

任何人都可以在这种情况下帮助我,我怎样才能得到像我的ViewController1一样的白色状态栏?
提前致谢.

解决方法

您是否尝试将此添加到两个视图控制器

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}

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

相关推荐