我正在为在后台运行的客户端开发应用程序。
它不是应用商店应用,因此它与通常适用于应用商店应用的规则不完全相同。甚至私有API也是这个应用程序的一个选项,但它必须在非越狱设备上运行。 (该应用程序将是一个企业应用程序。)
应用需要知道当前的设备方向。看似简单,但事实并非如此。我使用您期望的常规代码:
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
BOOL inLandscape = UIDeviceOrientationIsLandscape(deviceOrientation);
但是,当应用程序从前台移动到后台时,它似乎会返回有效的方向。
我需要方向来跟踪实际的设备方向。实际上我真正想要的是当前前台应用程序的用户界面方向,但是苹果公司很难推断它。如果必须的话,我会选择设备方向。
这个应用程序是用Objective-C编写的,但是我会说Swift"同样,用两种语言表达的答案都很好。
答案 0 :(得分:6)
有一个名为-[UIApplication _getSpringBoardOrientation]
的私有方法,它只调用另一个私有方法-[UIApplication activeInterfaceOrientation]
,它似乎为您提供当前前景应用的方向。