オプション1:
viewController.isModalInPresentation = true

(無効にされたインタラクティブな.pageSheet解雇はこのように機能します。)
- iOS 13以降には、
UIViewControllerと呼ばれる新しいプロパティが含まれています。isModalInPresentationこのプロパティはtrue、インタラクティブな終了を防ぐために設定する必要があります。
- 基本的には、ビューコントローラーの境界外のイベントを無視します。自動スタイルだけでなく、プレゼンテーションスタイル
.popoverなども使用している場合は、そのことを覚えておいてください。
- このプロパティは
falseデフォルトです。
公式ドキュメント:もしtrue、UIKitはビューコントローラの境界外のイベントを無視し、それが画面上にいる間にビューコントローラのインタラクティブな解雇を防ぐことができます。
オプション2:
func presentationControllerShouldDismiss(_ presentationController: UIPresentationController) -> Bool {
return false
}
- iOS 13以降、
UIAdaptivePresentationControllerDelegateという新しいメソッドが含まれていpresentationControllerShouldDismissます。
- このメソッドは、提示されたビューコントローラーがプログラムによって閉じられておらず、その
isModalInPresentationプロパティがに設定されてfalseいる場合にのみ呼び出されます。
ヒント: presentationControllerのデリゲートを割り当てることを忘れないでください。