SideMenu in Swift ignores UIStatusBarStyle.lightContent

121 views Asked by At

I am using a third party library called SideMenu, which can be found here. It works like a charm, but in my app, I use a white status bar UIStatusBarStyle.lightContent. I set this up in the entire project: in the deployment info and programmatically:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

In viewDidLoad(), I also call setNeedsStatusBarAppearanceUpdate(). It works on all ViewControllers, except when I use the SideMenu. When it appears, the text of the StatusBar becomes black and when I close it, it doesn't turn white again. It only becomes white when I go to another ViewController where the preferredStatusBarStyle is overridden.

Any ideas on how I can fix this? Do I need to call setNeedsStatusBarAppearanceUpdate() somewhere else? I have tried to look at the source code of SideMenu and tried to implement it in the transition function, but this was unsuccessful as well.

Note: I have set up my project with .lightContent in the deployment info, but still my ViewControllers show black status bar if I don't override the preferredStatusBarStyle. Maybe this can be the issue as well - it is by default not white but black, even though I set it to .lightContent?

EDIT: I also use these extensions to make the color of the StatusBar work using TabBarController and NavigationController. Issue could be in here as well:

extension UITabBarController {
    open override var childForStatusBarStyle: UIViewController? {
        return selectedViewController
    }
}

extension UINavigationController {
    open override var childForStatusBarStyle: UIViewController? {
        return visibleViewController
    }
}
0

There are 0 answers