视图控制器以模态方式呈现/关闭时的通知?

Posted

技术标签:

【中文标题】视图控制器以模态方式呈现/关闭时的通知?【英文标题】:Notification when view controller is presented modally/dismissed? 【发布时间】:2015-05-04 22:00:36 【问题描述】:

如果某个视图控制器以模态方式呈现在另一个视图控制器之上(viewWillDisappear 除外,iPad 上的非全屏模态呈现显然不需要),是否有任何方法可以自动通知?

背景/用例:在 iPad 应用程序中,每当呈现模态表单时,我想调整模态表单后面的视图的外观。但是,如果模态的呈现不一定在需要适应的同一个视图控制器中完成,而是可能发生在某些子 VC 或父 VC 中。当然,我可以手动传达此事件(通过通知、委托或其他方式),但这是非常重复的,并且在将来添加更多模式表单时很容易忘记。

因此,我想知道是否有更优雅的方式来实现这一点。我已经在presentedViewController 上尝试过 KVO,但这似乎不起作用(而且我也不确定如果模态演示是由子视图控制器完成的,presentedViewController 是否真的会被设置......)。

【问题讨论】:

【参考方案1】:

您可以在 UIViewController 上创建一个类别,并拥有自己的方法来presentModalWithNotification。这样您就永远不会忘记发送通知,并且您可以订阅此通知并在需要时使用它。

【讨论】:

以上是关于视图控制器以模态方式呈现/关闭时的通知?的主要内容,如果未能解决你的问题,请参考以下文章

在已经呈现的表单上呈现模态视图

当视图控制器以模态方式呈现时,用户可以滚动

以编程方式创建和呈现模态视图控制器

关闭模态视图控制器

以模态方式呈现视图控制器时,导航栏与黑色而不是白色混合

如何检查视图控制器是不是以模态方式呈现或推送到导航堆栈上?