私のユニバーサルアプリでは、iPhoneとiPadの異なる向きを処理する必要があります。iPadの場合、横向きを許可する必要があり、iPhoneのポートレートのみを許可する必要があります。私は最初に以下のコードを返しました
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
IOS 5では正常に動作していますが、IOS6ではautorotateメソッドはまったく実行されません。その後、メソッドをに変更しました。
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationMaskPortrait;
}
このメソッドでさえ、IOS6ではまったく実行されません。
私のplist設定は
IOS5とIOS6の両方で両方の向き[iPhone-portrait、iPad-landscape]を処理する必要があります。この問題を修正するためにガイドしてください。