0

我的控制器主视图调用

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

在它的方法中,因为必须为用户手动旋转viewDidAppear屏幕。

一切正常,除非我将应用程序置于后台并在此屏幕上重新进入前台:然后导航栏的高度变为 32px。

如果我评论setStatusBarOrientation电话,那么没问题。

我已经在didEnterForeground方法中记录了 navigationBar 高度(在 super 调用之后),但它告诉 44px。所以我想它会.

所以我想知道:

  • 如果有办法阻止导航栏调整大小
  • didEnterForeground如果不是,那么在第一个回调方法之后会出现什么其他回调方法(viewWill/DidAppear不)

谢谢 !

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 回答