我正在开发一个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.