Iphone – How to change UIViewControllerBasedStatusBarAppearance to YES/NO programmatically in iOS 7

ios7iphoneuistatusbar

My application has a dark background, but in iOS 7 the status bar became transparent. So I can't see anything there, only green battery indicator in the corner. How can I change the status bar text color to Green or Orange like it is on the home screen?

I know about

  1. Set the UIViewControllerBasedStatusBarAppearance to YES in the plist

  2. In viewDidLoad do a [self setNeedsStatusBarAppearanceUpdate];

  3. Add the following method:

    -(UIStatusBarStyle)preferredStatusBarStyle{ 
        return UIStatusBarStyleLightContent; 
    }
    

How can I change UIViewControllerBasedStatusBarAppearance programmatically?

Thanks in advance…

Best Answer

In Info.plist set 'View controller-based status bar appearance' as NO.

then,add this in your appdelegate.m class in didfinishlaunchingwithoptions method.

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];

this works for ios 7.