Change iOS7 Status Bar Colour programmatically, mid-run?

ios7, objective-c, statusbar

Solution

Go to your application Plist and add this as new row & set it as NO.

View controller-based status bar appearance  NO

Add a bool to determine state of `UIStatusBar` colour & add a Toggle method

@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;
    }
}

here is a Sample ScreenShot

When Menu is Closed, the colour is White.

When Menu is Open The colour is Black

Hope that helps.

Problem

I’m trying to change the Status Bar colour mid-run, i.e. not when a controller is loaded. I change the view’s background colour, so I need to change it from the black to white and vice versa. I know that I can change it using `preferredStatusBarStyle` and the setting in the plist, but as far as I can see that’ll only set it on first launching the view controller. I’d like to change it, for instance, when I hit a button. Can I do that?

Original source