Warm tip: This article is reproduced from serverfault.com, please click

swift-检测表在iOS 13上被驳回

(swift - Detecting sheet was dismissed on iOS 13)

发布于 2019-06-12 19:15:29

在iOS 13之前,提供了用于覆盖整个屏幕的视图控制器。并且,在关闭后,将viewDidAppear执行父视图控制器功能。

现在,iOS 13默认将表单显示为视图控制器,这意味着卡将部分覆盖基础视图控制器,这意味着viewDidAppear不会被调用,因为父视图控制器从未真正消失过。

有没有一种方法可以检测到所显示的视图控制器工作表已被解雇我可以在父视图控制器中重写某些其他功能,而不是使用某种委托

Questioner
Marcos Tanaka
Viewed
0
matt 2019-10-24 10:35:30

有没有一种方法可以检测到所显示的视图控制器工作表已被解雇?

是的。

我可以在父视图控制器中重写某些其他功能,而不是使用某种委托?

不,“某种委托”是你的工作方式。使你自己成为演示控制器的委托和重写presentationControllerDidDismiss(_:)

https://developer.apple.com/documentation/uikit/uiadaptivepresentationcontrollerdelegate/3229889-presentationcontrollerdiddismiss


缺少一个一般的运行时生成的事件来通知你,所显示的视图控制器(无论是否为全屏)已被关闭,这确实很麻烦。但这不是一个新问题,因为始终存在非全屏显示的视图控制器。仅仅是现在(在iOS 13中),它们更多了!我在其他地方对此主题进行了单独的问答:统一UIViewController“成为最前端”检测?