在iOS 13之前,提供了用于覆盖整个屏幕的视图控制器。并且,在关闭后,将viewDidAppear执行父视图控制器功能。
viewDidAppear
现在,iOS 13默认将表单显示为视图控制器,这意味着卡将部分覆盖基础视图控制器,这意味着viewDidAppear不会被调用,因为父视图控制器从未真正消失过。
有没有一种方法可以 检测到所显示的视图控制器工作表已被解雇 ?我可以在父视图控制器中重写某些其他功能, 而不是使用某种委托 ?
有没有办法检测到所显示的视图控制器工作表已被解雇?
是。
我可以在父视图控制器中重写某些其他功能,而不是使用某种委托?
不,“某种委托”是您的工作方式。使自己成为演示控制器的委托和重写presentationControllerDidDismiss(_:)。
presentationControllerDidDismiss(_:)
https://developer.apple.com/documentation/uikit/uiadaptivepresentationcontrollerdelegate/3229889-presentationcontrollerdiddismiss
缺少一个一般的运行时生成的事件来通知您,所显示的视图控制器(无论是否为全屏)已被关闭,这确实很麻烦。但这不是一个新问题,因为始终存在非全屏显示的视图控制器。仅仅是现在(在iOS 13中),它们更多了!