【问题标题】:Show and hide status bar + change status bar text color between view controllers in iOS在 iOS 中的视图控制器之间显示和隐藏状态栏 + 更改状态栏文本颜色
【发布时间】:2014-02-24 07:47:15
【问题描述】:

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

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

我在使用“基于视图控制器的状态栏外观”plist 设置时遇到问题;否时,我可以显示和隐藏状态栏,但不能更改颜色;而当设置为 YES 时,反之亦然。

【问题讨论】:

  • 您是否使用 UIStatusBarStyle 枚举来设置它们?像 [[UIApplication sharedApplication] setStatusBarStyle:(UIStatusBarStyle)]
  • 是的。这在“基于视图控制器的状态栏外观”plist 设置为 YES 时有效,但随后 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 停止工作。

标签: ios objective-c ios7-statusbar


【解决方案1】:

如果在 plist 中 基于视图控制器的状态栏外观为 NO,它会起作用。

例如-> 让我们在viewcontroller1 中说,我有以下代码

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear: animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
}

我从viewcontroller1 推送viewcontroller2,代码如下

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear: animated];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
}

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

【讨论】:

    猜你喜欢
    • 2014-02-21
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多