私の iPhone アプリは、逆さまのインターフェイスの向きをサポートしています。ユーザーが電話を逆さまにすると (ホーム ボタンが上になるように)、ユーザー インターフェイス全体が垂直に反転します。
ただし、ビュー コントローラーAからビュー コントローラーBを表示しようとすると問題が発生します(この例では、標準のメール コンポーザー ビュー コントローラーを表示します)。
- (IBAction)buttonTapped:(id)sender {
MFMailComposeViewController *mailVC = [MFMailComposeViewController new];
mailVC.mailComposeDelegate = self;
[self presentViewController:mailVC animated:YES completion:nil];
}
このメソッドがトリガーされると、最初に (青の) ビュー コントローラーAが何らかの理由でアニメーションなしですぐに垂直方向に反転します (最初のスクリーンショットに見られるように) → なぜ?
次に、表示されたビュー コントローラーBが (あるべき姿で) 下からビューに移動します。
ビュー コントローラBを閉じると、瞬時に反転し、(2 番目のスクリーンショットに見られるように、元の方向ではなく) ビューから上に移動します。
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
[self dismissModalViewControllerAnimated:YES];
}
これは iOS のバグですか、それともこの奇妙な動作を回避するにはどうすればよいですか?
(通常のポートレート モードと同じように、View Controller を表示するための同じ標準アニメーションのみが必要です。これらの反転は必要ありません。)