在我的iOS应用程序中,如何在调用viewDidLoad时知道设备方向?

时间:2013-01-11 13:32:09

标签: ios cocoa-touch uiview

我正在尝试这个:

- (void)viewDidLoad {

    [super viewDidLoad];

    if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation])) {

        NSLog(@"PORTRAIT");

    } else {

        NSLog(@"LANDSCAPE");
    }
}

但似乎[[UIDevice currentDevice] orientation]返回0,所以我无法知道设备当时的朝向。我怎么知道呢?

2 个答案:

答案 0 :(得分:1)

我正在使用

UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication]statusBarOrientation]

来自:

iOS Developer Library: Responding to Orientation Changes in a Visible View Controller

  

窗口调整视图控制器视图的边界。这会导致视图布局其子视图,从而触发视图控制器的viewWillLayoutSubviews方法。 运行此方法时,您可以查询应用程序对象的statusBarOrientation属性以确定当前的用户界面布局。

答案 1 :(得分:0)

您可以像这样检查设备的方向

    if (UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))
{
NSLog (@"Device is in Portrait Mode");
}
else
{
NSLog (@"Device is in Landscape Mode");
}