Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 即使设置为“清除”,弹出窗口也有黑色背景_Swift_Xcode_Uinavigationcontroller_Popup_Presentmodalviewcontroller - Fatal编程技术网

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
s
UIModalPresentationStyle
。此参数确定模态视图控制器的显示方式。模态视图控制器的默认值为
全屏

发件人:

UIModalPresentationStyle.全屏

演示完成后,将删除属于演示视图控制器的视图

这意味着在显示视图控制器后,将删除上一个视图控制器。当它被移除时,因为它下面没有任何东西,你会看到黑色。如果希望上一个视图控制器保持可见,可以将
modalPresentationStyle
设置为
overFullScreen

发件人:

UIModalPresentationStyle.全屏显示

演示文稿完成后,不会从视图层次结构中删除显示内容下的视图。因此,如果显示的视图控制器没有用不透明内容填充屏幕,则底层内容将显示出来

为此,请在显示视图控制器之前添加以下行:

vc.modalPresentationStyle = .overFullScreen

这应该会有帮助。

您是否尝试过通过设置
nav.view.backgroundColor=.white来设置
nav.view.backgroundColor=.clear
您正在将导航窗口的背景设置为clear(导航窗口的默认底部为黑色)

就是这样,谢谢!我在故事板的VC上正确地设置了它,但我完全没有意识到我在导航上错过了它,因为我是通过编程方式创建的。