Giz*_*odo 2 xcode dismiss modalviewcontroller ios swift
我有一个以模态方式呈现的观点。这是 iOS 13/14 中向下滑动关闭功能的一部分。
当用户开始关闭模态视图时,我收到此委托调用:
func presentationControllerWillDismiss(_ presentationController: UIPresentationController) {
}
Run Code Online (Sandbox Code Playgroud)
一旦用户开始向下拖动视图,就会调用此函数。但是,它可以被取消。
一旦视图完成关闭,以下调用就会给我:
func presentationControllerDidDismiss(_ presentationController: UIPresentationController) {
}
Run Code Online (Sandbox Code Playgroud)
我需要知道用户何时完成关闭手势以及视图将完成关闭。
我能够向前迈出几步,但仍然缺少上述所需的检测:
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!
}
})
}
Run Code Online (Sandbox Code Playgroud)
final func presentationControllerWillDismiss(_ presentationController: UIPresentationController) {
self.transitionCoordinator?.notifyWhenInteractionChanges({ (context) in
if context.isCancelled {
print ("will cancel")
} else {
print ("will finish")
}
})
}
Run Code Online (Sandbox Code Playgroud)