オプション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のデリゲートを割り当てることを忘れないでください。