我需要在控制器中运行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
}
}
答案 0 :(得分:3)
[[UIDevice currentDevice] orientation]
吗?
答案 1 :(得分:2)
尝试检查状态栏方向:
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
此外,还有一些其他视图控制器方法在viewDidLoad之前触发。看看awakeFromNib和initWithCoder。