在iOS 9上,如何在ViewSize:coordinator:中连续检测iPhone上的倒置方向?
我在iOS 9.1的iPhone上处理在iOS 9上,如何在ViewSize:coordinator:中连续检测iPhone上的倒置方向?,ios,swift,ios9,uiinterfaceorientation,Ios,Swift,Ios9,Uiinterfaceorientation,我在iOS 9.1的iPhone上处理视图中的旋转变化willtransitionosize:coordinator:,并且我能够成功地检测到上下颠倒的方向,如果设备在第一次启动应用程序后从右侧向上翻转进一步翻转不会导致进一步检测到翻转方向。 我正在视图控制器中使用以下代码: override func viewWillTransitionToSize(size: CGSize, withTransitionCoor
视图中的旋转变化willtransitionosize:coordinator:
,并且我能够成功地检测到上下颠倒的方向,如果设备在第一次启动应用程序后从右侧向上翻转进一步翻转不会导致进一步检测到翻转方向。
我正在视图控制器中使用以下代码:
override func viewWillTransitionToSize(size: CGSize,
withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
我已经在Xcode项目的General选项卡中勾选了所有方向
我遵循了被接受的答案中的建议,并实现了自己的自定义导航控制器
class MyNavigationController: UINavigationController {
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.All
}
}
这并没有导致成功地连续检测到视图中的倒置。视图大小:协调器:
向“我的视图控制器”添加相同的方法也不会更改结果:
class MyViewController: UIViewController {
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.All
}
使用设置单独的观察者
NSNotificationCenter.defaultCenter().addObserver(self, selector: "deviceOrientationDidChange:", name:UIDeviceOrientationDidChangeNotification, object: nil)
UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()
当我检查边界时,也不会持续报告倒置方向:
UIScreen.mainScreen().bounds
相反,边界报告为与景观相同
理想情况下,我希望由viewwillTransitionOnToSize:coordinator:
处理上下颠倒的问题,但我也愿意采取变通办法