1

我想检测状态栏在我当前视图上的位置,以确定要执行哪个 segue。我知道这样做的首选方法是确定设备方向,但这种方法对我来说有两个问题:

1.)如果设备与垂直或水平方向的角度不够远,则没有检测到设备方向并且不会发生segue

2.)在某些情况下,我将“锁定”显示方向,这样即使物理设备方向是横向的,屏幕也会被锁定为纵向,我将要执行我创建的纵向序列。

问题是“ [UIApplication sharedApplication].statusBarOrientation = ”没有返回状态栏的实际方向。有没有一种简单的方法可以检测到这一点?否则我将不得不编写一堆乱七八糟的代码来跟踪这一点。

4

1 回答 1

1

你有没有试过:[[UIDevice currentDevice] orientation]

笔记:

根据您的应用程序的设计,可能需要调用[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]. 如果你这样做,一定要[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]在某个时候打电话。

如果这还不足以满足您的目的,我想您必须手动检查加速度计。查看:处理运动事件以了解有关如何完成的更多信息。

于 2012-10-28T18:15:53.567 回答