中途运行时以编程方式更改iOS7状态栏颜色?

时间:2014-02-17 11:05:21

标签: objective-c ios7 statusbar

我正在尝试在运行中更改状态栏颜色,即在加载控制器时没有。我更改了视图的背景颜色,因此我需要将其从黑色更改为白色,反之亦然。

我知道我可以使用preferredStatusBarStyle和plist中的设置来更改它,但据我所知,它只会在首次启动视图控制器时设置它。我想改变它,例如,当我按下按钮时。

我能这样做吗?

2 个答案:

答案 0 :(得分:24)

  • 转到您的应用程序Plist并将其添加为新行&将其设为NO。

    View controller-based status bar appearance  NO
    

添加一个bool以确定UIStatusBar颜色和&的状态。添加切换方法

@property(nonatomic) BOOL black;


-(void)toggleStatuSBar:(id)sender{

    if(black) {
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
        black = NO;

    }else {
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
        black = YES;
    }
}

这是一个Sample ScreenShot

  • 菜单关闭时,颜色为白色。

    enter image description here

  • 菜单打开时颜色为黑色

    enter image description here

希望有所帮助。

答案 1 :(得分:2)

截至Swift 3:

  1. 转到您的应用程序Plist并将其添加为新行&将其设为NO。
  2. View controller-based status bar appearance NO

    2

    怀特:UIApplication.shared.statusBarStyle = .lightContent

    黑色:UIApplication.shared.statusBarStyle = .default