如果我通过按主页按钮将应用程序带到后台,然后更改设备方向并将应用程序置于前台,我仍然可以在[UIDevice currentDevice] .orientation中获得之前的设备方向值。
例如,我将设备保持在默认方向,将应用程序移至背景并将设备旋转至UpsideDown方向,然后将应用程序置于前台,deviceOrientation在查询时仍为默认值。只有一段时间后,才会调用beginDeviceOrientationEvents的监听器,并且可以使用正确的值。
所以我想问一下,在应用重新启动时,首先应该在哪里获取正确的deviceOrientation值?
答案 0 :(得分:0)
在您的app delegate的[[UIDevice currentDevice] orientation]
方法中使用applicationDidBecomeActive
(described in the docs}。
<强>更新强>
事实上,[[UIApplication sharedApplication] statusBarOrientation]
可能更有用,因为返回的值会考虑您将应用设置为与之兼容的方向。