我正在处理的应用程序有一个主视图控制器,它以模态方式呈现不同的视图控制器。这些视图控制器可以以模态方式呈现它们自己的子视图控制器。
在随机时间,主视图控制器可以接收通知(通过消息视图控制器)向用户呈现消息,但是消息视图控制器不应该被呈现,直到所有其他当前呈现的视图控制器被解除。
主视图控制器是否有可靠的方法来确定模态呈现的视图控制器及其子节点何时被解除?
我已尝试覆盖主视图控制器中的dismiss(animated:completion:)
,但如果模态显示的视图控制器调用self.dismiss(animated:completion:)
,则不会调用它。我还尝试在主视图控制器中覆盖viewDidAppear(_:)
,但如果模态呈现的视图控制器显示为演示样式.overFullScreen
,则不会调用它。
有什么想法吗?
编辑:我不知道如何判断主视图控制器是否是最顶层的,我问的是视图控制器如何知道何时它成为最顶层的视图控制器。