When running a bare-bones test project in Xcode 9 Beta 1 (consisting of basically nothing but a nav controller and a view controller) I have found different behavior related to prefersStatusBarHidden depending on whether or not I am running on the iPhone X simulator or not.
Specifically, when I launch with a UINavigationController as the root view controller and a single UIViewController on the stack, the view controller's prefersStatusBarHidden computed property is called (as expected) for pretty much every simulator just before the view controller appears. But it is *not* called when running the exact same code in the iPhone X simulator (and in fact the status bar is *not* hidden on that simulator).
To get the same behavior on the iPhone X simulator, I am forced to subclass UINavigationController and override childViewControllerForStatusBarHidden (returning viewController).
Is this supposed to happen?
(Note also that this behavior differs from Xcode 9 and iOS 11 GM -- prefersStatusBarHidden is checked on all simulators.