在iOS中的视图控制器之间显示和隐藏状态栏+更改状态栏文本颜色

Mic*_*rne 2 objective-c ios ios7-statusbar

关于iOS 7状态栏着色和可见性的另一个问题......在我的解决方案中,我希望拥有所有这些东西:

  • 状态栏将被隐藏并在视图控制器上显示(带动画)以响应用户操作(当它们滑动时)
  • 将新视图控制器推入导航控制器时,状态栏中文本的颜色应从黑色变为白色
  • 并且当新视图控制器进入时,应始终显示状态栏

我在使用'基于视图控制器的状态栏外观'plist设置时遇到问题; 当没有时,我能够显示和隐藏状态栏,但不能改变颜色; 而当设置为YES时,反之亦然.

san*_*thu 5

基于视图控制器的状态栏外观在plist中为NO它可以工作.

例如 - >让我们说viewcontroller1,我有下面的代码

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear: animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

我推viewcontroller2viewcontroller1它有下面的代码

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear: animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码在模拟器中测试时,它完美地动画了变化.