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