加载视图时检测方向

时间:2014-07-14 22:39:38

标签: objective-c uiinterfaceorientation device-orientation ios-universal-app

我正在开发一款通用应用。 当我的设备是ipad我有2个设计:肖像和风景。

我使用此方法:-(void)orientationDidChanged:(NSNotification *)notification

旋转设备时效果很好。但是我有一个问题,当第一次加载视图时我没有旋转设备。    出于这个原因,我将此代码放在viewdidload中:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ //
     something.
}
else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
    NSLog(@"IPAD ** ");
    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)){
        NSLog(@" vertical ** ");
    }
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)){
         NSLog(@"Horizontal ** ");
    }
}

我的问题是这样的:有时它可以工作,有时不工作:(。这个方法:orientationDidChanged,当开始工作时?只有当我旋转我的设备或立即使用viewDidLoad时,有必要再问一次我的方向那个方法?谢谢你的一些建议。

当我旋转设备时,我没有问题,它完美无缺:D ..我的问题是我最近运行应用程序但我还没有打开设备

1 个答案:

答案 0 :(得分:0)

您可以使用:

UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if(orientation == 0) //Default orientation 
    //UI is in Default orientation (Portrait)
else if(orientation == UIInterfaceOrientationPortrait)
    //UI is in Portrait orientation
else if(orientation == UIInterfaceOrientationLandscapeLeft)
    //UI is in Landscape-left orientation
else if(orientation == UIInterfaceOrientationLandscapeRight)
    //UI is in Landscape-right orientation