首页 > 解决方案 > 如何使自定义 UIPresentationController 在未从窗口中删除时不调用演示者视图生命周期方法(viewDidDisappear)?

问题描述

我正在使用自定义转换来呈现模态视图,其中呈现的 VC不覆盖整个屏幕并且演示者的视图没有被删除。它与系统默认的模态演示样式(又名工作表/卡片)非常相似。

当我使用系统的默认模态演示样式时,viewDidDisappear不会在演示者 VC 上调用。viewDidDisappear但是,当我调用时,我的自定义转换确实会触发endAppearanceTransition- 即使它的视图从未从屏幕上移除。

fromVC.beginAppearanceTransition(false, animated: true)

UIView.animate(withDuration: 0.3) {
   // ...
} completion: { didComplete in
   // Calling this causes 'viewDidDisappear' to be called
   fromVC.endAppearanceTransition()
}

如何模仿系统的转换行为?我不应该在自定义转换中使用beginAppearanceTransitionandendAppearanceTransition方法吗?

标签: iosuikituipresentationcontroller

解决方案


推荐阅读