1

iOS 5 SDKを使用してマスター詳細アプリケーションを作成しました。これは、デバイスが縦向きの場合はUIViewControllerをモーダルに表示し、横向きの場合はUISplitViewControllerを表示することを目的としています。

モーダルVCは、以下を使用して横向きに回転すると却下されます。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)){
        [self dismissModalViewControllerAnimated:YES];
    }
}

ただし、UISplitViewControllerは回転イベントを取得しないため、ランドスケープウィンドウ内のポートレート「モード」になります。

DetailViewControllerのviewWillAppearで次のように回転をトリガーしようとしました。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
    if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
        [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
    }
}

、SplitViewControllerを呼び出してみました。willRotateToInterfaceOrientationまた、モーダルからSplitViewControllerを呼び出してみdidRotateFromInterfaceOrientationましたが、効果はありません。

何か案は?

4

0 に答える 0