如何在 UIViewController 中禁用拖动解除

How disable drag dismiss in UIViewController

我已将 UIViewController 添加到我的视图中。 现在用户可以通过拖动到屏幕底部来删除此视图。我怎样才能禁用它?

我试试

view.isUserInteractionEnabled = false

override func viewDidLoad() {
        self.transitioningDelegate = self
    }

extension MyViewController: UIViewControllerTransitioningDelegate {
    func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
        return nil
    }

    func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
        return nil
    }
}

但用户仍然可以关闭它。

您可以在 viewController 的 viewDidLoad 方法中使用这一行:

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

可以参考this.

查看 Bilal 的回答

.isModalInPresentation = true 对我有用

您需要禁用平移手势才能禁用拖动关闭。