我有 2 UIViewControllers。首先UIViewController,比如说ViewController1,我一直在UINavigationBar隐藏。由于我的应用程序的主题是 black ,所以我需要 white UIStatusBariniOS 7这样它就不会在 black 中变得不可见UINavigationBar。为了变白UIStatusBar,我在iOS 7.
- 设置
UIViewControllerBasedStatusBarAppearance为YES_plist - 在
viewDidLoad做一个[self 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 这样的白色状态栏?提前致谢。