在弹出框中时如何检测界面方向?

时间:2012-08-07 13:49:19

标签: objective-c ios

如果我在UIViewController课程中,目前正以弹出方式呈现,我该如何检测我所处的方向?

我已经尝试了通常的self.interfaceOrientation,但即使设备处于横向状态,它也始终返回Portrait。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

您可以使用

 [UIApplication sharedApplication].statusBarOrientation

或者您可以在更改方向后处理通知

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];

答案 1 :(得分:3)

这应该可以满足您的需求:

UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];

您需要致电

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

在此属性开始生成正确的值之前。