我正在使用在iOS7和iOS8上运行的应用程序,该应用程序只有一个支持多个方向的屏幕,其他屏幕不应该旋转。为实现此目的,我启用了所有“设备定位”功能。在应用程序的plist中应用程序范围内设置,并让每个控制器返回自己的方向设置。
界面方向行为现在正确,但iOS8上的状态栏除外。以下是重现此问题的最简单方法的截图:
当设备处于纵向状态时,一切正常。
在iOS7上,旋转设备不会导致任何问题。
在iOS8上,旋转设备会导致状态栏也旋转,但界面的其余部分也不会旋转。
此演示应用只有一个视图控制器。这是Swift代码:
import UIKit
class TestController: UIViewController {
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
}
有没有办法在iOS8中修复或解决此问题?
答案 0 :(得分:0)
感谢您的评论,他们帮助我指出了正确的方向。我之前尝试简化问题的尝试仍在原始应用程序中,并且该问题无法在全新的应用程序中重现...
问题是由多个UIWindow造成的。另一个窗口用于在某些情况下以模态方式显示信息,因此我们只是将其隐藏在其他所有内容之上。但是,这可能是一个糟糕的方法,因为该窗口将劫持原始窗口应该接收的一些调用。