私は何時間も解決策を見つけようとしてきましたが、成功していません。
したがって、このコードを使用して、全画面表示中にナビゲーションコントローラーを「上に移動」しています
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
//viewController.navigationController.view.frame = [[UIScreen mainScreen] bounds];
//viewController.view.frame = [[UIScreen mainScreen] bounds];
//[viewController.view setNeedsDisplay];
NSLog(@"%@",NSStringFromCGRect(viewController.view.frame));
NSLog(@"%@",NSStringFromCGRect(viewController.navigationController.view.frame));
ログの結果は次のとおりです: {{0, 0}, {320, 548}} {{0, 0}, {320, 568}}
コメントされた部分でわかるように...問題を解決するためにいくつかの方法を試しました。ただし、UIKit は画面の位置を更新したくないようです。
ステータスバーを非表示にした後、0.2秒の遅延後にこのコードを実行すると、期待どおりに動作します。ただし、ステータスバーの代わりに空白が一瞬表示されます。
奇妙なことに、このコードが一度実行された後は、遅延がなくても問題はありません。発生するのは初回のみです。
だから私はここで助けが必要です...他に何を試すべきかわかりません。どんな提案も素晴らしいでしょう、どうもありがとう。