私のアプリは、2 つのモーダル ビュー コントローラーを次々に開く必要があります (ログイン ビューがあり、入力が間違っている場合、2 番目のモーダル ビュー コントローラーにエラー メッセージが表示されます。期待どおりに動作しますが、デバイスを回転させると問題が発生しました。なんらかの理由で、最初のモーダル ビュー コントローラーがページ全体を占有し、ほとんどの画面が白くなります。
次のようにモーダルUIViewControllerを開くために使用するコード
LogonController * logonControler =[[self storyboard] instantiateViewControllerWithIdentifier:@"LogonController"];
logonControler.modalPresentationStyle = UIModalPresentationFormSheet;
logonControler.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:self.logonController animated:YES];
logonControler.view.superview.backgroundColor=[UIColor clearColor];
logonControler.view.superview.frame = CGRectMake(0, 0, 400, 200);
CGPoint center = [DesktopSplitViewController sharedInstance].view.center;
if (![UIApplication isPortrait]) {
center=CGPointMake(center.y, center.x);
}
center.y=center.y-100;
logonControler.view.superview.center = center;
2 番目のモーダル ビュー コントローラーは、異なる UIViewController 実装を使用するだけで、logonControler から同じ方法で開かれます。
私はこれに2日以上こだわっていますが、どんな考えでも大歓迎です。
ここでまったく同じ質問を見つけましたが、リプレイはありません。