1

ユニバーサルiPad/iPhoneアプリとして作成したiPhoneアプリがあります。iPadバージョン用にsplitviewcontrollerを実装しました...すべて問題ありません。

私のiPhoneアプリでは、横向きを許可するためにshouldAutorotateToInterfaceOrientationをオーバーライドする第2レベルのビューコントローラー(Webビュー)を除いて、すべてが縦向きになっています。ビューチェーンに戻ると、ポートレートに戻ります。すばらしい!

しかし、今では私のiPadスプリットビューアプリは縦向きのままになっています。rootviewcontrollerなどのビューのいずれかでshouldAutorotateToInterfaceOrientationをオーバーライドすると、iPhoneアプリでランドスケープモードが効果的に許可されますが、これはできません。ただし、iPadでのランドスケープの問題は修正されます。

これを回避する方法はありますか?iPadのshouldAutorotateToInterfaceOrientationには事実上「はい」と言いたいのですが、iPhoneの場合は「いいえ」と言いたいです。これを試しましたが、機能しません。両方のデバイスでランドスケープが可能です。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    BOOL rotate = NO;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        rotate = YES;
    }
    return rotate;  
}

何かアドバイス?

4

1 に答える 1

1
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    return YES;
} else {
    return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
于 2010-11-19T13:50:30.953 に答える