0

私のコントローラーのメインビュー呼び出し

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];

ユーザーのviewDidAppearために画面を手動で回転させる必要があるためです。

アプリをバックグラウンドに置き、この画面でフォアグラウンドに再入力する場合を除いて、すべてが完全に機能します。その後、navigationBar の高さが 32px になります。

setStatusBarOrientation通話にコメントしても問題ありません。

メソッドでナビゲーションバーの高さをログに記録しましたdidEnterForeground(スーパーコールの後)が、44pxです。だから私はそれがにサイズ変更されると思います。

だから私は知りたいです:

  • ナビゲーションバーのサイズが変更されないようにする方法があった場合
  • いいえの場合、そのコールバック メソッドの後に他のコールバック メソッドが来ますdidEnterForeground( viewWill/DidAppeardoes'nt)

ありがとう !

4

1 に答える 1

2

4か月後、ついに部分的な解決策を見つけました!

  • いいえの場合、didEnterForeground の後に来る他のコールバック メソッド (viewWill/DidAppear はありません)

viewController (アプリ デリゲートではない) が再びフォアグラウンドに入るときに、適切なコールバックを見つけました。とNSnotificationCenter

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil];

削除することを忘れないでください

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil];
于 2012-09-14T09:53:46.730 に答える