gpt4 book ai didi

swift - 弹出窗口有黑色背景,即使它设置为清除

转载 作者:行者123 更新时间:2023-11-28 11:47:20 30 4
gpt4 key购买 nike

我有一个 UIViewController,我正在展示另一个。它应该显示为具有透明背景的弹出窗口。正常显示,但背景是黑色的。它在嵌入 UINavigationController 时显示。

问题是背景颜色是黑色,我看不到下面的 View ,即使所有背景颜色都设置为清除。我什至尝试在呈现 Controller 时将背景设置为清晰,但仍然没有。我在 Storyboard 中设置它以显示当前上下文并交叉溶解。

View 调试器也不会在层次结构中将任何 View 显示为黑色。不确定哪里出了问题,感谢任何帮助,谢谢!

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)
}

最佳答案

你有黑色背景的原因是你没有设置你的UIViewControllers UIModalPresentationStyle。此参数确定您的模态视图 Controller 如何显示。模态视图 Controller 的默认值为 fullScreen

来自 Apple Documentation :

UIModalPresentationStyle.fullScreen

The views belonging to the presenting view controller are removed after the presentation completes.

这意味着在你的 View Controller 被呈现后,之前的 View Controller 被移除。当它被移除时,因为它下面没有任何东西,你会看到黑色。如果您希望以前的 View Controller 保留并可见,您可以将 modalPresentationStyle 设置为 overFullScreen

来自 Apple Documentation :

UIModalPresentationStyle.overFullScreen

The views beneath the presented content are not removed from the view hierarchy when the presentation finishes. So if the presented view controller does not fill the screen with opaque content, the underlying content shows through.

为此,在呈现 View Controller 之前添加以下行:

vc.modalPresentationStyle = .overFullScreen

这应该有所帮助。

关于swift - 弹出窗口有黑色背景,即使它设置为清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52393083/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com