Xcode 4 でプロジェクトを開始し、今日、Xcode を 5 に更新しました。iOS7 シミュレーターで同じプロジェクトを実行すると、いくつかの興味深い (イライラする) 問題が明らかになりました。
私のアプリには、ユーザーがタップできるサイドバーがあり、タップしたボタンに基づいて、このコードを使用して新しい VC をインスタンス化します。
YMGeneralInfoTableViewController *generalInfoTableVC = [self.storyboard instantiateViewControllerWithIdentifier:@"generalInfoTableVC"];
次に、このコードを使用して、この新しい VC を nav スタックにプッシュします。
[self.navigationController pushViewController:generalInfoTableVC animated:YES];
iOS 6 ではすべて正常に動作していましたが、iOS 7 ではナビゲーション バーが魔法のように消えてしまいました。
これは、新しい VC をプッシュする前のスクリーン ショットです。
押した後は次のとおりです。
ご覧のとおり、navBar があるべき位置で、コンテンツの開始位置と statusBar の間にギャップがあります。
また、iOS 6 デバイスでこのコードを再度テストしましたが、その iOS 6 デバイスではすべて問題ありません。だから私はここで何が起こっているのか分かりません。
また、navbar が消えたコントローラーの navBar/navigationItem をログに記録しようとすると、navBar への正しい参照が取得されます。つまり、nil ではなく、単に表示されません。
ただし、このメソッドでsetHideNavigationBar:NO Animated:NO
は navBar も元に戻りませんでした。誰が何が起こっているのか知っていますか?