在我的应用中,我试图使手机旋转到水平方向时导航栏不会从44px缩小到32px。通过在旋转视图时以及在viewDidAppear中设置navigationBars框架,我已经能够实现这一点。但是,当我按下主页按钮退出应用程序,然后重新进入应用程序时,导航栏仍会缩小。因此,我实现了一个通知以检测UIApplicationDidBecomeActiveNotification,并在该方法中将NavigationBar框架高度重置为44px。但是,它不起作用,因为正在调用某种东西,这正在重置我的视图框架。有人知道触发UIApplicationDidBecomeActiveNotification重置视图控制器框架后会调用什么吗?

最佳答案

在您的应用程序中,任何类都可以是不同通知的“观察者”。创建视图控制器时,可以将其注册为UIApplicationDidBecomeActiveNotification的观察者,并指定在该通知发送到您的应用程序时要调用的方法。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethod:) name: UIApplicationDidBecomeActiveNotification object:nil];

根据需要删除ViewWillDisappear / viewDidDisAppear / Dealloc中的观察者:
[[NSNotificationCenter defaultCenter] removeObserver:self];

关于iphone - 触发UIApplicationDidBecomeActiveNotification后会调用什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8701407/

10-12 00:23
查看更多