4

在控制器中运行 viewDidLoad 方法之前,我需要检测设备方向。我尝试了针对其他问题的所有解决方案,但我无法解决。

在 xCode 5 和 iOS 7 中使用 SotryBoard 的最佳方法是什么?

先感谢您!

编辑:实际上我正在使用

- (void)viewDidLoad {

    [super viewDidLoad];

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

        switch ([[UIDevice currentDevice] orientation]) {
            case (UIDeviceOrientationPortrait):
                // landscape layout
                break;

            default:
                // portrait layout
                break;
        }

但它不起作用......

已解决:使用

- (void)viewDidLoad {

    [super viewDidLoad];

    if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait || [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown) {
        // Portrait
    }

    if( [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft || [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight){
        // Landscape
    }
}
4

2 回答 2

3

[[UIDevice currentDevice] orientation]是你需要的吗?

于 2013-10-31T13:01:49.277 回答
2

尝试检查状态栏方向:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];

在 viewDidLoad 之前还有一些其他的视图控制器方法被触发。查看 awakeFromNib 和 initWithCoder。

于 2013-10-31T17:16:25.963 回答