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
ましたが、効果はありません。
何か案は?