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

前端之家收集整理的这篇文章主要介绍了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相关文章