Solved: How to change Status Bar text color in iOS


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

Best Answer:

  1. Set the UIViewControllerBasedStatusBarAppearance to YES in the .plist file.

  2. In the viewDidLoad do a [self setNeedsStatusBarAppearanceUpdate];

  3. Add the following method:

    - (UIStatusBarStyle)preferredStatusBarStyle
        return UIStatusBarStyleLightContent; 

Note: This does not work for controllers inside UINavigationController, please see Tyson’s comment below 🙂
Swift 3 – This will work controllers inside UINavigationController. Add this code inside your controller.
Swift 5 and SwiftUI
For SwiftUI create a new swift file called HostingController.swift
Then change the following lines of code in the SceneDelegate.swift

If you have better answer, please add a comment about this, thank you!