问题描述
如果
ViewDiddisapear和ViewWilldisappear仍在另一个View Controller上方时被调用(例如,将View Controller推到顶部)。是否只有在将视图控制器从导航堆栈中删除后才调用该函数?向后退按钮添加功能可以正常工作,但是如果用户决定使用边缘平移手势关闭视图怎么办?是否有一个动作可以说明这两个事件?
解决方法
是的,我可以想到几种方法来实现这一目标
一种选择是将一些代码添加到UIViewController的dealloc方法中。
如果您不希望视图控制器控制器在离开堆栈时被释放,则还可以为UINavigationController设置UINavigationControllerDelegate并进行定义
func navigationController(_ navigationController: UINavigationController,didShow viewController: UIViewController,animated: Bool) {
guard let poppedViewController =
navigationController.transitionCoordinator?.viewController(forKey: .from)
<Do something with the popped VC>