问题描述
我有一个以模态呈现的视图。这是 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")
}
})
}