旋转行为iOS8 vs iOS9

除了AllButUpsideDown之外,我有一个在所有视图中都锁定为肖像的应用。 我正在使用的方法是在目标常规设置菜单中启用纵向,左侧风景和右侧风景。 然后有UINavigationController和UITabBarController的子类重写func supportedInterfaceOrientations() -> UIInterfaceOrientationMask .Portrait并返回.Portrait

然后在我的视图控制器,需要能够旋转我也重写了func supportedInterfaceOrientations() -> UIInterfaceOrientationMask .AllButUpsideDown并返回.AllButUpsideDown 。 这工作得很好,因为这个视图控制器仅作为模式呈现,即aViewController.presentViewController()

所有这些都可以在iOS8上的iOS9上正常工作,但是如果我在横向上关闭可旋转视图控制器,则UI将缩放到横向,但它将以纵向显示。

导致iOS8

任何人都知道该怎么办? 我从一开始就接近这个旋转的东西吗? 任何干净的修复? 解决方法? 黑客?

UPDATE

我的问题源于我使用自定义转换来呈现和关闭可以旋转的视图控制器。 我试着用一堆不同的解决方案解决它一段时间。 最接近我的解决方案是为我的可旋转视图控制器使用一个单独的UIWindow,除了承运人栏的问题仍然存在错误的方向外,这是我无法解决的问题。

我选择的解决方案(不是真正的解决方案)是仅使用iOS9 +和iOS8中的自定义转换,使用默认的当前转换。


从VC导航返回时,我遇到了类似的问题,它支持只有肖像的景观。 我没有找到一个干净的解决方法。 这两行不建议使用,但如果您绝望,可以在您即将解雇时强制设备朝向。

let value = UIInterfaceOrientation.Portrait.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")
链接地址: http://www.djcxy.com/p/54971.html

上一篇: Rotation behaviour iOS8 vs iOS9

下一篇: Set different UINavigationController titles for embedded UITabBar subviews?