Swift Modal View Controller with transparent background [duplicate] Swift Modal View Controller with transparent background [duplicate] swift swift

Swift Modal View Controller with transparent background [duplicate]


You can do it like this:

In your main view controller:

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

In your modal view controller:

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

If you are working with a storyboard:

Just add a Storyboard Segue with Kind set to Present Modally to your modal view controller and on this view controller set the following values:

  • Background = Clear Color
  • Drawing = Uncheck the Opaque checkbox
  • Presentation = Over Current Context

As Crashalot pointed out in his comment: Make sure the segue only uses Default for both Presentation and Transition. Using Current Context for Presentation makes the modal turn black instead of remaining transparent.