2

UIPresentationController根据当前的特征集合,我想在两个不同的 之间进行调整。例如,这两个控制器可以UIPopoverPresentationController用于任何特征,而自定义UIPresentationController用于紧凑的水平特征(例如 iPhone)。

不幸的是,这在最新的 iOS 8 中似乎是不可能的。特别是:

  • 您可以设置一个UIAdaptivePresentationControllerDelegate来换出演示风格,但只允许标准的全屏演示控制器。

  • 您可以在呈现视图控制器之前选择要使用的呈现控制器,但在呈现后,当特征集合发生变化时,这实际上并不能适应,例如在 iPad 多任务处理或方向变化中。

几个不同的解决方案尝试:TumblrIrace

有什么建议么?

4

1 回答 1

0

假设您需要两个表示控制器来适应是错误的假设。

只有一个表示控制器,您必须使用委托方法调整视图和/或转换。对于自定义转换,您只需在返回的视图控制器上设置一个转换委托类viewControllerForAdaptivePresentationStyle,在我的情况下,它是一个导航控制器,带有一个透明的暗色视图,底部有表格,右侧导航项中有完成按钮。我的自定义转换从底部向上移动表格,同时调暗和调整调暗视图的大小,并在导航栏中淡入淡出。如果您想查看自己运行地图的行为并点击右下角的信息按钮并在 iPhone 和 iPad 上尝试,我已经完全复制了它。以下是紧凑和常规的屏幕截图: 在此处输入图像描述 在此处输入图像描述

于 2016-03-05T01:31:53.060 回答