在我的应用程序中,当手机旋转到水平方向时,我正试图让导航栏从44px缩小到32px。我已经能够通过在旋转视图时设置navigationBars框架以及在viewDidAppear中完成此操作。但是,当我按下主页按钮退出应用程序然后我重新进入应用程序时,导航栏仍然缩小。所以我实现了一个检测UIApplicationDidBecomeActiveNotification的通知,在那个方法中我将navigationBar框架高度重置为44px。但是,它不起作用,因为调用了一些正在重置我的视图框架的东西。有没有人知道在UIApplicationDidBecomeActiveNotification被触发后重置viewcontrollers框架后会调用什么?
答案 0 :(得分:0)
在您的应用程序中,任何类都可以成为不同通知的“观察者”。创建视图控制器时,可以将其注册为UIApplicationDidBecomeActiveNotification的观察者,并指定在您的应用程序发送通知时要调用的方法。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethod:) name: UIApplicationDidBecomeActiveNotification object:nil];
根据需要删除ViewWillDisappear / viewDidDisAppear / Dealloc中的观察者:
[[NSNotificationCenter defaultCenter] removeObserver:self];
答案 1 :(得分:0)
我遇到了同样的问题,如果你通过Key Value Observers附加一个观察者,你可以看到在UIApplicationDidBecomeActiveNotification之后调用了一些东西。