5
votes

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...

2
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];ad this to app delegate launch method, this will change status bar style to white all over the appCoolMonster

2 Answers

10
votes

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.

10
votes

As mention by others add "View controller-based status bar appearance' in your application's info.plist and set it to Type: Boolean and Value: NO

For your ready reference:

screenshot

In iOS 9

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

method is deprecated.

So you can use this:

application.statusBarStyle = UIStatusBarStyleLightContent;

add this line of code in method

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

which is present in appDelegate.m file. This will change the status bar text color throughout your application.

So if you have any screen which has background may be dark or light then in that screen you can the status bar color by making use of:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

Hope this helps.