微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS 13/14 模态视图控制器解除检测

如何解决iOS 13/14 模态视图控制器解除检测

我有一个以模态呈现的视图。这是 iOS 13/14 向下滑动以关闭功能

用户开始关闭模式视图时,我收到此委托调用

func presentationControllerWilldismiss(_ presentationController: UIPresentationController) {

}

一旦用户开始向下拖动视图,就会调用它。但是,它可以被取消。

一旦视图完成关闭,下面的调用就会给我:

func presentationControllerDiddismiss(_ presentationController: UIPresentationController) {


}

我需要知道用户何时完成关闭手势以及视图何时完成关闭

我能够向前迈出几步,但仍然没有完成上述要求的检测:

func presentationControllerWilldismiss(_ presentationController: UIPresentationController) {
        
        //User started dismissing,with no guarantee

        self.transitionCoordinator!.animate(alongsideTransition: {(context: UIViewControllerTransitionCoordinatorContext) -> Void in
            
            //dismissal is animating. Could be finishing or canceling the dismissal

            
        },completion: {(  context: UIViewControllerTransitionCoordinatorContext) -> Void in
            if context.isCancelled {
                //dismissal got cancelled
            } else {
                //dismissal has completed. Too Late!
            }
        })

        
        
    }

解决方法

    final func presentationControllerWillDismiss(_ presentationController: UIPresentationController) {
            
            self.transitionCoordinator?.notifyWhenInteractionChanges({ (context) in
                if context.isCancelled {
                    print ("will cancel")
                } else {
                    print ("will finish")
    
                }
            })
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。