ios – 模态视图控制器不覆盖状态栏

我正在开发一个ios应用程序我有一个主视图,在这个观点
我试图呈现一个模糊的视图控制器与灰暗的背景(黑色与不透明度).
问题是状态栏不受此颜色的影响,并保持不变.

这是我如何呈现视图控制器:

let shareViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ShareViewController") as! ShareViewController
            shareViewController.battle = battle
            shareViewController.delegate = self
            let animation = CATransition()
            animation.duration = 1
            animation.type = kCATransitionFade
            self.view.window?.layer.addAnimation(animation,forKey: kCATransition)
            presentViewController(shareViewController,animated: false) {
               () in 
               // nothing here
            }

以下是一些屏幕截图来说明问题:

这是问题(状态栏颜色):
Problem illustration
这是故事板中的模态视图:
storyboard

解决方法

我无法重现您的问题,以下代码在我的单视图应用程序中没有问题:
let viewController = UIViewController()
viewController.modalPresentationStyle = .overFullScreen
viewController.view.backgroundColor = UIColor.black.withAlphaComponent(0.5)

let animation = CATransition()
animation.duration = 1
animation.type = kCATransitionFade
self.view.window?.layer.add(animation,forKey: kCATransition)

self.present(viewController,animated: false,completion: nil)

但是请注意,您应该在视图的根控制器上显示.有时您可以从内部控制器显示出奇怪的效果

self.view.window?.rootViewController?.present(viewController,completion: nil)

还要确保你使用的是正确的modalPresentationStyle.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...