如何在UIViewController中禁用拖动关闭

时间:2019-08-30 11:20:48

标签: ios swift 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
    }
}

但是用户仍然可以关闭它。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

您可以参考this

答案 2 :(得分:0)

请参阅Bilal的答案here

.isModalInPresentation = true对我有用