iPad在表面平坦时的发射方向

时间:2010-10-10 17:30:40

标签: iphone ipad ios

我有以下代码:

 -(void)viewWillAppear:(BOOL)animated {

    UIDeviceOrientation orientation = [[UIDevice currentDevice] UIInterface];

    if(orientation==UIDeviceOrientationLandscapeLeft || orientation==UIDeviceOrientationLandscapeRight) {
        NSLog(@"Device Landscape");
    } else {
        NSLog(@"Device Portrait");
    }

 }

这适用于模拟器和设备,但只有当iPad在表面上不平坦时,例如,如果我将iPad放在桌面上并加载视图,它会说出它的肖像,所以我无法检测到视图出现时的方向。

调用viewWillAppear时检测界面方向的最佳方法的任何想法?

由于

3 个答案:

答案 0 :(得分:27)

您应该使用[self interfaceOrientation]代替设备方向。

答案 1 :(得分:9)

[[UIApplication sharedApplication] statusBarOrientation]也适用于您无法访问[self interfaceOrientation]的代码中的某个地方

答案 2 :(得分:0)

首先,你知道UIViewController的interfaceOrientation属性吗?看起来你正试图复制它。如果你真的想这样做,只需订阅设备方向更改通知,检查新方向是否是有效的界面方向(这是一个宏),如果是,则将值存储到某个变量(如lastSeenOrientation)。然后,您可以随时随地依赖该值。