首页 > 解决方案 > 状态栏颜色:preferredStatusBarStyle 与 childViewControllerForStatusBarStyle

问题描述

如果 ViewController 在 NavigationController 中(并且 NavigationBar 没有隐藏),则 StatusBar 颜色由 NavigationController 确定:

  1. 如果我们覆盖preferredStatusBarStyleNavigationController 的变量,我们将获得所需的颜色。

  2. 如果我们覆盖childViewControllerForStatusBarStyleNavigationController,我们将获得与选择的 ViewController 相同的颜色(由preferredStatusBarStyle该 ViewController 的变量确定)。

  3. 问题是:如果我们覆盖这两个变量会发生什么?

剧透:实验表明,三种情况下的结果都不同。
情况的逻辑 3) 我不明白。

PS。看起来Xcode有一个错误。如果我们从 Xcode 启动应用程序,则根本不会调用preferredStatusBarStylechildViewControllerForStatusBarStyle所以 StatusBar 颜色取决于我们如何启动应用程序。但这与问题无关。

标签: swiftuinavigationcontrollerstatusbariosdeployment

解决方案


推荐阅读