如果 ViewController 在 NavigationController 中(并且 NavigationBar 没有隐藏),则 StatusBar 颜色由 NavigationController 确定:
如果我们覆盖
preferredStatusBarStyle
NavigationController 的变量,我们将获得所需的颜色。如果我们覆盖
childViewControllerForStatusBarStyle
NavigationController,我们将获得与选择的 ViewController 相同的颜色(由preferredStatusBarStyle
该 ViewController 的变量确定)。问题是:如果我们覆盖这两个变量会发生什么?
剧透:实验表明,三种情况下的结果都不同。
情况的逻辑 3) 我不明白。
PS。看起来Xcode有一个错误。如果我们从 Xcode 启动应用程序,则根本不会调用preferredStatusBarStyle
。childViewControllerForStatusBarStyle
所以 StatusBar 颜色取决于我们如何启动应用程序。但这与问题无关。