Swift 模态视图背景设置为清除后显示为黑色

Swift modal view background appearing black after setting it to clear

我正在尝试以模态方式从控制器呈现自定义视图,但是当我这样做时,除了文本字段之外的所有内容的背景都变成黑色,如 here . (the intended modal)

中所示

这似乎是一个相当普遍的问题,但是我已经实现了大多数类似问题的代码作为答案

这是我在第一个控制器中的 addEvent 方法:

@IBAction func addEvent(_ sender: Any) {
    let newEventViewController = NewEventViewController()
    newEventViewController.view.backgroundColor = UIColor.clear
    newEventViewController.view.isOpaque = false
    navigationController?.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
    navigationController?.present(newEventViewController, animated: true, completion: nil)
}

如能帮助我找出我遗漏的内容,我们将不胜感激。如果它有所作为,我将使用单独的 xib 文件而不是情节提要来创建我的应用程序。

您需要像这样设置 newEventController 的 modalPresentationStyle 而不是 navigationController:

newEventViewController.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext

虽然不需要,但我会像这样从自己而不是导航控制器中展示:

self.present(newEventViewController, animated: true, completion: nil)