在我的应用程序中,我试图让手机旋转到水平方向时,导航栏不会从44px缩小到32px。我已经能够通过设置navigationBars框架,当视图旋转,并在viewDidAppear。但是,当我按主页按钮退出应用程序,然后重新进入应用程序时,导航栏仍然收缩。所以我实现了一个通知来检测UIApplicationDidBecomeActiveNotification,并在该方法中,我将导航栏框高度重置为44px。但是,它不起作用,因为正在调用我的视图框架。有谁知道在UIApplicationDidBecomeActiveNotification被触发后重新调用viewcontrollers框架会调用什么?UIApplicationDidBecomeActiveNotification被触发后会调用什么?
回答
在您的应用程序中,任何类都可以成为不同通知的“观察者”。当您创建视图控制器时,您可以将其注册为UIApplicationDidBecomeActiveNotification的观察者,并指定在您的应用程序发送该通知时要调用哪种方法。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethod:) name: UIApplicationDidBecomeActiveNotification object:nil];
在ViewWillDisappear/viewDidDisAppear/dealloc的删除观察者根据自己的需要:
[[NSNotificationCenter defaultCenter] removeObserver:self];
是的,我做到了。视图从无效状态恢复后,以某种方式重置其框架,或重新组织它的布局,我想知道究竟发生了什么。 – 2012-01-02 15:54:18
当应用程序变得活跃时,它发布通知,并且我们添加了观察者来捕获该通知,然后我们在其中定义的任务将工作。这很简单。你可以参考下面的开发者链接获取关于通知的一些信息-http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html – rishi 2012-01-02 16:00:36
是的,我知道。我在说,除此之外,当应用程序变为活动状态时,还会调用其他内容以重置导航栏框架。 – 2012-01-02 16:01:47
我有同样的问题,如果您通过密钥值观察员附加一个观察者可以看到的东西是在UIApplicationDidBecomeActiveNotification之后调用。
- 1. UIApplicationDidBecomeActiveNotification是否被随时调用?
- 2. 我调用MPI_Init()后会发生什么?
- 3. jQuery animate回调队列后不会触发:false已被使用?
- 4. 在WPF/Prism中,当DelegateCommand.RaiseCanExecuteChanged被触发时,CompositeCommand会发生什么?
- 5. 如果我调用GlobalLock()然后调用GlobalUnlock()会发生什么?
- 6. iOS应用程序在被杀后被唤醒后会被唤醒 - 之后会发生什么?
- 7. 为什么这个“if”语句在它应该被触发时不会触发?
- 8. 为什么OnShow不会被调用TForm?
- 9. 在什么情况下不会调用Sybase触发器?
- 10. 在Backbone.js集合上调用fetch()时会触发什么事件?
- 11. 新rake任务出现问题,rspec为什么会被触发?
- 12. 为什么checkbox_CheckedChanged事件不会被触发?
- 13. 为什么touchesMoved方法有时不会在iphone中被触发?
- 14. 为什么onStateChange事件不会被触发?
- 15. 当condition_variable :: wait()被调用时,解锁unique_lock会发生什么?
- 16. 如果/当DllImport被多次调用时会发生什么?
- 17. 当alloc或allocWithZone被调用时会发生什么?
- 18. 为什么beforeunload总是被触发?
- 19. 为什么Mockito的when()被触发?
- 20. 是什么阻止NetStream.onPeerConnect被触发?
- 21. 为什么进度没有被触发?
- 22. 为什么Second Deferred没有被触发?
- 23. 为什么viewDidAppear没有被触发?
- 24. iOS 9 UIApplicationDidBecomeActiveNotification回调未调用
- 25. Form.Close后会发生什么?
- 26. EntityManager.persist()后会发生什么
- 27. netdev_open后会发生什么?
- 28. * ngFor后会发生什么?
- 29. 为什么android onLongPress总是在onDoubleTap之后被触发?
- 30. onItemSelectedListener不会被触发
您的视图是由一个笔尖构成的吗? – kocodude 2012-01-02 15:17:12
@kocodude - 不是以编程方式构建的。 – 2012-01-02 15:24:32