Ios – New iOS 13 Modal Presentation: Presenting Controller Doesn’t Move Down

iosios13swiftuiviewcontrolleruser interface

I have a weird behavior when presenting UIViewControllers modally in iOS 13. The new presentation style that I've seen all across iOS 13 looks like this:

The presenting view controller appears behind the presented view controller. It is also shifted down to mimic a "stack"

The presenting view controller appears behind the presented view controller. It is also shifted down to mimic a "stack"

Meanwhile, when presenting view controllers through my app, I keep getting this effect:

The presenting view controller doesn't move at all when presenting a new view controller

The presenting view controller doesn't move at all when presenting a new view controller

I use this code to present this view controller:

let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)

Here is my question:
I'm wondering why this is happening and if there is a way to present view controllers in the normal iOS 13 style (with the presenting view controller moving back).

Thanks in advance!

Best Answer

Turns out the problem was my view controller hierarchy. I was able to fix it by making the presenting view controller the root view controller of my app. First I set the background controller as the root view controller by calling

window.rootViewController = self

and then using my previous code

let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController
controller.modalPresentationStyle = .pageSheet
controller.modalTransitionStyle = .coverVertical
present(controller, animated: true, completion: nil)

I presented the view controller. Thanks to everyone who tried to help!