What affects whether preferredStatusBarStyle is called?

I've implemented preferredStatusBarStyle on some view controllers, but it never gets called. I added calls to setNeedsStatusBarAppearanceUpdate but that had no effect. I also tried changing the Info.plist value for UIViewControllerBasedStatusBarAppearance, but that also had no effect.


What determines whether preferredStatusBarStyle is called on a view controller?

If a ViewController is inside a navigationController then the navigationController’s navigationBar.barStyle determines statusBarStyle.

- preferredStatusBarStyle is called on the application's top-most fullscreen view controller (the root view controller if there are no modal presentations). If the top-most view controller is a container view controller, it can override - childViewControllerForStatusBarStyle to delegate control of the status bar style to one of its children. UITabBarController always delegates to the selected view controller. UINavigationController delegates to the top view controller only when its navigation bar is hidden, otherwise it determines the status bar style itself.

What affects whether preferredStatusBarStyle is called?
 
 
Q