回転できる子ビュー(ルートではなく、ビューAとします)があります。また、モーダルビュー(ビューMとします)が表示され、サーバーからデータが受信されます。私たちのQAは、そのビューAが回転しているときにデータが来ると、モーダルビューMは表示されないことを発見しました。実際、モーダルビューを表示するコードが実行され、アプリはルートビューに移動しますが、ユーザーにはモーダルビューは表示されません。
モーダルビューMは、次のコードで表示されます。
[self.navigationController popToViewController:self.rootViewController animated:animated];
[self performSelector:@selector(showModalAcceptDialog:) withObject:requestID afterDelay:0.1];
(void)showModalAcceptDialog:(NSManagedObjectID*)requestID {
RequestAcceptViewController *requestAcceptViewController = [[RequestAcceptViewController alloc] initWithNibName:@"RequestAcceptViewController" bundle:nil];
requestAcceptViewController.requestID = requestID;
[[self navigationController] presentModalViewController:requestAcceptViewController animated:YES];
[requestAcceptViewController release];
}
モーダルビューを表示する前にルートビューへのナビゲーションを実行するには、遅延が必要です。そうしないと、アプリがクラッシュして内部例外が発生します。
また、横向きモードのビューAにはナビゲーションバーがなく、(viewWillDisappearで)消えたときに復元されますが、この場合、ナビゲーションバーは表示されません。
私はそれを修正する方法がわからないので、この問題について私を助けてください。