Popup具有黑色背景,即使它已设置为清除
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Popup具有黑色背景,即使它已设置为清除相关的知识,希望对你有一定的参考价值。
我有一个UIViewController
,我正在展示另一个。它应该显示为具有透明背景的弹出窗口。它显示正常,但背景是黑色的。它是在嵌入UINavigationController
时呈现的。
问题是背景颜色是黑色,我看不到下面的视图,即使所有背景颜色都设置为清除。我甚至尝试在呈现控制器时清楚地设置背景,但仍然没有。我把它设置在Storyboard
中以显示当前的上下文和交叉溶解。
视图调试器也不会在层次结构中将任何视图显示为黑色。不确定有什么问题,感谢任何帮助,谢谢!
let vc = UIStoryboard.init(name: "AccountSettings", bundle: nil).instantiateViewController(withIdentifier: "upgradeVCPopup") as! UpgradeVCPopup
let nav = UINavigationController(rootViewController: vc)
nav.view.backgroundColor = .clear
vc.view.backgroundColor = .clear
if let navigationController = self.navigationController {
navigationController.present(nav, animated: true, completion: nil)
} else {
self.present(nav, animated: true, completion: nil)
}
你有黑色背景的原因是你没有设置你的UIViewController
s UIModalPresentationStyle
。此参数确定您的模态视图控制器的显示方式。模态视图控制器的默认值是fullScreen
。
UIModalPresentationStyle.fullScreen
在演示完成后,将删除属于呈现视图控制器的视图。
这意味着在显示视图控制器后,将删除先前的视图控制器。当它被移除时,由于它下面没有任何东西,你会看到一种黑色。如果您希望以前的视图控制器保持可见,您可以将modalPresentationStyle
设置为overFullScreen
。
UIModalPresentationStyle.overFullScreen
演示文稿完成后,不会从视图层次结构中删除所显示内容下方的视图。因此,如果呈现的视图控制器没有用不透明的内容填充屏幕,则底层内容会显示出来。
为此,请在呈现视图控制器之前添加以下行:
vc.modalPresentationStyle = .overFullScreen
这应该有所帮助。
您是否尝试过设置nav.view.backgroundColor = .white
通过设置nav.view.backgroundColor = .clear
,您要将导航窗口的背景设置为清除(导航窗口的默认基准为黑色)
以上是关于Popup具有黑色背景,即使它已设置为清除的主要内容,如果未能解决你的问题,请参考以下文章