Этот жест можно найти в свойстве контроллера модального представления presentedView
.Как я отлаживал, массив gestureRecognizers
этого свойства имеет только один элемент, и при печати он выглядел примерно так:
UIPanGestureRecognizer: 0x7fd3b8401aa0 (_UISheetInteractionBackgroundDismissRecognizer);
* 1010Таким образом, чтобы отключить этот жест, вы можете сделать это следующим образом:
let vc = UIViewController()
self.present(vc, animated: true, completion: {
vc.presentationController?.presentedView?.gestureRecognizers?[0].isEnabled = false
})
Чтобы снова включить его, просто установите isEnabled
обратно на true
:
vc.presentationController?.presentedView?.gestureRecognizers?[0].isEnabled = true
Обратите внимание, что iOS 13Все еще в бета-версии, поэтому в следующем выпуске может быть добавлен более простой подход.