I am displaying modal UIViewController with modalPresentationStyle = .formSheet but it has some issues on iphone XR and XS Max. It's displayed behind notch. Image bellow from left side iphone XR, XS, X.
UIViewController use autolayout and is presented like this:
let contentViewController = UINib(nibName: "EditViewController", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! EditViewController
let navController = UINavigationController(rootViewController: contentViewController)
navController.modalPresentationStyle = UIModalPresentationStyle.formSheet
let popover = navController.presentationController!
popover.delegate = self
self.present(navController, animated: true, completion: nil)
delegate:
extension MyController: UIAdaptivePresentationControllerDelegate {
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
}
There is same issue with modalPresentationStyle = .pageSheet. It works fine with other modalPresentationStyles ie fullscreen
It's on iOS 12.1, swift 3
Any idea how to fix this? Thanks
UIKit does not support that.
The only possibilities are sheet to full screen
and page sheet to form sheet
on iPad. As specified in the documentation :
In a horizontally compact environment, this option behaves the same as UIModalPresentationFullScreen.
So UIKit already adapts it.
Unfortunately you will have to implement your own custom transition controller.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With