ios - 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")
}
})
}
推荐阅读
- javascript - 在 .. 中声明的符号 InputText 中的错误在角度构建产品上
- javascript - 调用过滤器 URL odata 服务 sapui5 时出错
- scalardl - 在设置或修改环境后,如何确保 scalardl 环境正常工作?
- scala - 用空值替换空字符串
- postgresql - Google Cloud SQL - Postgresql 存储不断增长
- python - 从父类访问子类中定义的属性
- javascript - 当我单击班级中的按钮时,如何获得提醒?
- automated-tests - 使用 puppeteer 进行多用户 e2e 测试
- javascript - 如何从angular 8中的javascript函数触发打字稿功能
- sql-server - 在什么存储过程中从 ssrs 接收多值参数?