好的,这是一个奇怪的问题。
iOS 8中,如果从UISplitViewController的主面板中以纵向方式呈现弹出窗口,则无法旋转。我运行了一堆测试,并确认了这一点。
UISplitViewController上有一个私有方法_shouldPreventAutorotation,当旋转时会调用它,并检查弹出窗口的内容控制器的presentationController属性。如果返回非nil值,则禁用旋转。如果您重写该属性并返回nil,则可以再次启用旋转。
有人知道为什么在iOS 8中添加了这种行为吗?
我上传了演示此行为的测试项目在此处。