迅速模态视图控制器具有透明背景[重复]迅速模态视图控制器具有透明背景[重复](Swift Modal

2019-05-13 06:01发布

这个问题已经在这里有一个答案:

  • 对于模态透明背景呈现视图-控制 3个回答

我知道这个题目是很受欢迎的,但我在一个编程语言有点iniciate问题,事实是,我还是不明白,我把代码。 好吧,我会告诉整个案件:

我试图做一个模式Swift在正常一点不同:通过点击一个按钮,将显示视图控制器(以下模态型)在屏幕上,而是用透明背景。 只有标签的蓝色视图就会显示出来。 当出现在此视图控制器,它是透明的背景,但只要它完成过渡,它会留在黑色的背景。 已经停用不透明的选项,并测试了一些选择,但没有此故障排除。

一些能帮助我吗?

视频处于上的情况下(模拟器测试https://www.youtube.com/watch?v=wT8Uwmq9yqY )。

我开始与快捷,而我还是蛮着如何在Xcode编程丢了,我读的问题的答案具有下面的代码来解决这个问题:

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

我在哪里可以把这个代码?

Answer 1:

你可以像下面这样做:

在您的主视图控制器:

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

如果您使用的是故事板的工作:

只需添加一个Storyboard Segue公司与Kind设置为Present Modally到您的模态视图控制器,并设置下列值这个视图控制器:

  • 背景=清除颜色
  • 绘图=取消选中复选框不透明
  • 介绍=在当前上下文

作为Crashalot在他的评论中指出:确保SEGUE只使用Default两个PresentationTransition 。 使用Current ContextPresentation ,使模式变成黑色,而不是保持透明。



文章来源: Swift Modal View Controller with transparent background [duplicate]