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

问题描述

使用new iOS 13 view controller changes,显示的视图控制器无法覆盖整个屏幕。相反,它们在顶部留有黑色空间。但是,系统状态栏不会自动更改颜色。当我介绍一个模态视图控制器时,状态栏将停留在现在不可见的黑色文本(和绿色电池,在任何地方的中间看起来都很奇怪)。

如何使条形与Apple应用程序中的条形相同,当出现模态弹出框时条会以不同的颜色显示动画?

我尝试在模态控制器上将modalPresentationCapturesStatusBarAppearance设置为true,但是没有运气。

我的呈现视图控制器中的栏是UINavigationBar,并且不属于导航控制器。当前的VC是其委托人,我已经重写position(for bar: UIBarPositioning)以返回.topAttached。

我尝试用.modalPresentationStyle = .formSheet呈现模态,而根本不设置.modalPresentationStyle。都不起作用。

损坏:

broken view controller

当前的VC:

the presenting view controller

预期行为:

![expected behaviour,as shown in calendar app

解决方法

两件事:

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...