【问题标题】:How to know when a view controller is presented using a 'form sheet' modal presentation style如何知道何时使用“表单”模式呈现样式呈现视图控制器
【发布时间】:2019-11-21 14:15:16
【问题描述】:

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

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

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

我希望我的模态显示视图控制器根据它是以这种缩小宽度的表单样式呈现,还是作为全屏呈现来更新其布局。但模态框的水平尺寸等级始终 compact,即使在 iPad Pro 横向全屏时也是如此。

presenting 视图控制器的水平尺寸类可以告诉我我需要知道什么(正如上面提到的 Apple 文档)。但这意味着要观察每个视图控制器中 traitCollection 的变化,而不是显示我的模态,以便它们将它们传递给模态视图控制器。

模态视图控制器本身有什么方法可以知道它正在使用哪种样式,在它发生变化时发出警报以便做出响应?

【问题讨论】:

    标签: ios uiviewcontroller uikit


    【解决方案1】:

    至少了解应用程序大小类别的一种稍微粗略的方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-10
      • 2020-11-24
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多