swift2 Swift模态视图控制器,带透明背景[副本]

cyej8jka  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(267)

此问题在此处已有答案

Transparent background for modally presented viewcontroller(5个答案)
七年前就关门了。
我知道这个主题很流行,但是我在编程语言上有点iniciate问题,事实是我还是不明白我把代码放哪里了.好吧,我来告诉整个案例:

我试图使一个模态斯威夫特在一点不同于正常:通过单击按钮,ViewController将显示在屏幕上(遵循模态类型),但背景是透明的。仅显示带标签的蓝色视图。当此ViewController出现时,背景是透明的,但一旦完成转换,背景将保持黑色。已禁用不透明选项,并测试了一些选项,但此故障排除中没有任何内容。
能帮我一些忙吗?
该视频是模拟器中对用例(https://www.youtube.com/watch?v=wT8Uwmq9yqY)的测试。
我从swift开始,我仍然对如何在Xcode中编程很困惑,我读到了一个问题的答案,它有以下代码来解决这个问题:

self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;

我该把这段代码放在哪里?

pw9qyyiw

pw9qyyiw1#

您可以这样做:

在主视图控制器中:

func showModal() {
    let modalViewController = ModalViewController()
    modalViewController.modalPresentationStyle = .overCurrentContext
    presentViewController(modalViewController, animated: true, completion: nil)
}

在模态视图控制器中:

class ModalViewController: UIViewController {
    override func viewDidLoad() {
        view.backgroundColor = UIColor.clearColor()
        view.opaque = false
    }
}

如果您正在使用情节提要:

只需将一个将Kind设置为Present Modally的Storyboard Segue添加到您的模态视图控制器中,并在此视图控制器上设置以下值:

  • 背景=透明色
  • 绘图=取消选中“不透明”复选框
  • 表示=当前上下文

正如Crashalot在他的评论中指出的:确保segue只将Default用于PresentationTransition。将Current Context用于Presentation会使模态变为黑色,而不是保持透明。

相关问题