iOS5からiOS6に移行したアプリがあり、UINavigationControllerが正しく表示されないという問題があります。
私のアプリでは、ユーザーはログインする必要があり、ボタンを押すとモーダルビューでそのログイン画面が表示されます。
WelcomeViewController.m
- (IBAction)signInButtonSelected:(id)sender
{
LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController presentViewController:loginViewController animated:YES completion:^{}];
}
ビューが正しく読み込まれ、ユーザーはログイン資格情報を入力できます。ただし、ログインボタンを押すと、次のビューが表示され、上部にUINavigationBarが表示されている必要があります(表示されていない場合を除く)。アプリを終了して再起動すると、UINavigationBarがそのビューに正しく表示されます。ログインビューからログイン画面に移動すると、ナビゲーションコントローラーが非表示になる理由がわかりません。
ログインボタンが押されたときに実行され、次のビューをロードするコードは次のとおりです。
LoginViewController.m
WallViewController *wallViewController = [[WallViewController alloc] initWithNibName:nil bundle:nil];
[(UINavigationController *)self.presentingViewController pushViewController:wallViewController animated:YES];
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
誰かがなぜこれが起こっているのかを明らかにすることができれば、それは素晴らしいことです!
ありがとう!