我有一个应用程序,是锁定在所有的视图,除了一个是AllButUpsideDown。我使用的方法是在目标一般设置菜单中启用肖像、景观左侧和景观右侧。然后有UINavigationController和UITabBarController的子类,它们覆盖func supportedInterfaceOrientations() -> UIInterfaceOrientationMask并返回.Portrait。
然后,在我的视图中,需要能够旋转的控制器也重写了func supportedInterfaceOrientations() -> UIInterfaceOrientationMask并返回了.AllButUpsideDown。这很好,因为这个视图控制器只是作为一个模态,即aViewController.presentViewController()。
所有这些工作都如iOS9在iOS8上所期望的那样,但是,如果我关闭可旋转的视图控制器,而在景观中,UI将被缩放成景观,它将以纵向显示。

有人知道该怎么做吗?我从一开始就把旋转的东西搞错了吗?有干净的修复方法吗?解决办法?黑客?
更新
我的问题源于我使用自定义转换来呈现和取消可以旋转的视图控制器。我试着用了一段时间来解决这个问题。我最接近的解决方案是为我的可旋转视图控制器使用一个单独的UIWindow,除了一个问题,载体条仍然在错误的方向,这是我没有设法解决的问题。
我使用的解决方案(实际上不是解决方案)是只使用iOS9+中的自定义转换,在iOS8上使用默认的当前转换。
发布于 2016-07-14 14:46:03
我有类似的问题时,从VC导航回来,支持景观,只有一个是肖像。我没有找到一个干净的解决办法。这两行是不建议使用,但如果你是绝望,你可以强制你的设备方向,当你即将解散。
let value = UIInterfaceOrientation.Portrait.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")https://stackoverflow.com/questions/38368841
复制相似问题