我经历了很多不同的问题,出于某种原因,我还是无法让我的iPad检测到负载方向。
似乎最好的方法是检测statusBarOrientation:
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"View Loads");
if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft
|| [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) {
NSLog(@"This is Landscape");
} else {
NSLog(@"This is Portrait");
}
}
但它总是返回“肖像”。我的.plist中有所有4个方向,并且还设置了shouldAutorotateToInterfaceOrientation:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
interfaceOrientation == UIInterfaceOrientationPortrait);
} else {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
}
有没有人有任何其他建议?提前谢谢!
答案 0 :(得分:4)
iPad应用程序始终以纵向模式启动,无论实际的设备方向如何(如果这是设备所在,它们会立即旋转到横向)。如果您在程序生命周期的后期使用相同的代码检查状态栏方向,您将看到它返回实际方向。