如何在 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 对我有用
您需要禁用平移手势才能禁用拖动关闭。
我已将 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 对我有用
您需要禁用平移手势才能禁用拖动关闭。