如何知道何时使用“表单”模式呈现方式呈现视图控制器

时间:2019-07-11 19:47:30

标签: ios uiviewcontroller uikit

以模态方式显示视图控制器时,我们可以将modalPresentationStyle设置为.formSheet

  

在水平规则的环境中,调整视图控制器的大小,使其内容区域小于屏幕尺寸,并在内容下方放置一个变暗视图...

     

在水平紧凑的环境中,此选项的行为与UIModalPresentationStyle.fullScreen相同。

我希望我的模态呈现的视图控制器基于是以减小宽度的表单样式还是以全屏呈现的形式来更新其布局。但是,即使在横向模式的iPad Pro上全屏显示时,模态的水平尺寸级别也总是 compact

presenting 视图控制器的水平尺寸类可以告诉我我需要知道的内容(如上面的Apple文档所述)。但这意味着要在每个视图控制器中观察traitCollection中的变化,而不是呈现我的模态,只是将它们传递给模态视图控制器。

模态视图控制器本身是否可以通过某种方式知道它使用的是哪种样式,并在更改时得到警报,以便其可以响应?

1 个答案:

答案 0 :(得分:0)

至少知道应用程序大小类的一种粗略方法:

UIApplication.shared.delegate?.window??.rootViewController?.traitCollection