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

ayo*_*yon 4 objective-c uinavigationbar ios ios7

我有2个UIViewControllers.在第一个UIViewController,比方说ViewController1,我保持UINavigationBar隐藏.因为我的应用程序的主题是黑色,所以我需要白色UIStatusBar,iOS 7以便它不会变成黑色隐形UINavigationBar.为了变白,UIStatusBar我正在使用这种方法iOS 7.

  1. 设置UIViewControllerBasedStatusBarAppearanceYESplist
  2. viewDidLoad做一个[self setNeedsStatusBarAppearanceUpdate];
  3. 添加以下方法:

    -(UIStatusBarStyle)preferredStatusBarStyle{ 
      return UIStatusBarStyleLightContent; 
    } 
    
    Run Code Online (Sandbox Code Playgroud)

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

self.navigationController.navigationBarHidden = NO 
Run Code Online (Sandbox Code Playgroud)

在我的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; 
Run Code Online (Sandbox Code Playgroud)

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

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

and*_*ers 6

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

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}
Run Code Online (Sandbox Code Playgroud)