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.