Swift 即使设置为“清除”,弹出窗口也有黑色背景
我有一个Swift 即使设置为“清除”,弹出窗口也有黑色背景,swift,xcode,uinavigationcontroller,popup,presentmodalviewcontroller,Swift,Xcode,Uinavigationcontroller,Popup,Presentmodalviewcontroller,我有一个UIViewController,我在另一个上面演示。它应该显示为带有透明背景的弹出窗口。正常显示,但背景为黑色。它在嵌入UINavigationController时显示 问题是背景颜色是黑色的,我看不到下面的视图,即使所有背景颜色都设置为“清除”。我甚至试着在展示控制器时将背景设置清楚,但仍然一无所获。我在故事板中设置了它,以显示当前上下文和交叉融合 视图调试器也不会在层次结构中将任何视图显示为黑色。不知道出了什么问题,非常感谢您的帮助,谢谢 let vc = UIStoryboar
UIViewController
,我在另一个上面演示。它应该显示为带有透明背景的弹出窗口。正常显示,但背景为黑色。它在嵌入UINavigationController
时显示
问题是背景颜色是黑色的,我看不到下面的视图,即使所有背景颜色都设置为“清除”。我甚至试着在展示控制器时将背景设置清楚,但仍然一无所获。我在故事板中设置了它,以显示当前上下文和交叉融合
视图调试器也不会在层次结构中将任何视图显示为黑色。不知道出了什么问题,非常感谢您的帮助,谢谢
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
sUIModalPresentationStyle
。此参数确定模态视图控制器的显示方式。模态视图控制器的默认值为全屏
发件人:
UIModalPresentationStyle.全屏
演示完成后,将删除属于演示视图控制器的视图
这意味着在显示视图控制器后,将删除上一个视图控制器。当它被移除时,因为它下面没有任何东西,你会看到黑色。如果希望上一个视图控制器保持可见,可以将modalPresentationStyle
设置为overFullScreen
发件人:
UIModalPresentationStyle.全屏显示
演示文稿完成后,不会从视图层次结构中删除显示内容下的视图。因此,如果显示的视图控制器没有用不透明内容填充屏幕,则底层内容将显示出来
为此,请在显示视图控制器之前添加以下行:
vc.modalPresentationStyle = .overFullScreen
这应该会有帮助。您是否尝试过通过设置nav.view.backgroundColor=.white来设置nav.view.backgroundColor=.clear
您正在将导航窗口的背景设置为clear(导航窗口的默认底部为黑色)就是这样,谢谢!我在故事板的VC上正确地设置了它,但我完全没有意识到我在导航上错过了它,因为我是通过编程方式创建的。