Skip to content

Instantly share code, notes, and snippets.

@embassem
Forked from barbietunnie/modal-view.md
Created June 12, 2017 13:45
Show Gist options
  • Save embassem/553a8d45db979a23878638db8639a95c to your computer and use it in GitHub Desktop.
Save embassem/553a8d45db979a23878638db8639a95c to your computer and use it in GitHub Desktop.
Swift Modal View Controller with transparent background

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 Seque 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.

Source

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment