如何确保 iOS 13 个模态视图控制器呈现正确的状态栏颜色?

How can I ensure iOS 13 modal view controllers present the right status bar colour?

对于 new iOS 13 view controller changes,显示的视图控制器不会覆盖整个屏幕。他们反而在顶部留下黑色 space。但是,系统状态栏不会自动更改颜色。当我展示模态视图控制器时,状态栏停留在 now-invisible 黑色文本(和一个绿色电池,在茫茫荒野中看起来超级奇怪)。

如何使栏的行为方式与 Apple 应用程序中的行为相同,即当模式弹出窗口出现时栏会以不同的颜色动画显示?

我尝试在我的模态控制器上将 modalPresentationCapturesStatusBarAppearance 设置为 true,但没有成功。

我呈现的视图控制器中的栏是一个 UINavigationBar,它不是导航控制器的一部分。呈现 VC 是它的代表,我已经将 position(for bar: UIBarPositioning) 覆盖为 return .topAttached.

我试过使用 .modalPresentationStyle = .formSheet 显示模态,但根本没有设置 .modalPresentationStyle。都没有用。

损坏:

主持人VC:

预期行为:

两件事:

模态视图控制器需要 VC.modalPresentationCapturesStatusBarAppearance = false。这是默认值,但如果像我一样将其设置为其他值,请确保它是 false!

您需要确保 info.plist 中的 View controller-based status bar appearance 设置为 YES。我曾试图使我的状态栏具有正确的颜色,但将其设置为 NO 是一个问题。