在我的通用应用程序中,我需要处理iPhone和iPad的不同方向。对于iPad,我需要允许横向方向,而对于iPhone仅支持纵向方向。我首先返回了以下代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
iOS 5中运行良好,但在iOS 6中,自动旋转方法根本没有触发。之后我更改了方法为:
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationMaskPortrait;
}
即使这些方法在iOS 6中根本没有运行。
我的plist设置如下:
我需要处理iOS 5和iOS 6的两种方向[ iPhone - portrait,iPad - landscape]。请指导我如何解决此问题。
preferredInterfaceOrientationForPresentation
要求一个单一的方向,而你返回了一个掩码 (UIInterfaceOrientationMaskPortrait
),而不是例如UIInterfaceOrientationPortrait
。 - Jesper