2013-01-10 35 views
3

我在基于选项卡的应用程序的选项卡上有一个UIViewController,它挂钩了UIApplicationDelegate。我想通过UIApplicationDelegate处理应用程序事件,但我没有在我的UIViewController中获取它们,它的方法没有被调用。如何处理UIViewController中的UIApplicationDelegate方法?

我应该做什么旁边挂在我的UIViewController的接口声明?

@interface TestViewController : UIViewController<UIApplicationDelegate> 
@end 

其他代表都是作品,我可以处理他们,除了这个,的UIApplication及其委托应该有一些琐碎的“绝招”,但我找不到。

谢谢!

回答

9

如果您需要应用程序委托以外的类来响应各种应用程序事件,请让其他类注册各种应用程序通知。

例如,处理应用程序进入背景:

// Put this in the class that needs to deal with entering the background 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(backgrounding) name:UIApplicationDidEnterBackgroundNotification object:nil]; 

UIApplication的文档的所有通知的列表。

不要忘记删除该类的dealloc方法中的观察者。

+0

如果是这样做的话,那么我会做一些错误的事情:只有当我想要将视图文本框的文本保存到NSUserDefaults时,才会在应用程序终止时执行此操作。所以我恐怕不会在控制器的应用程序委托处理终止事件。但是哪里? – Tom

+0

把它放在需要保存状态的视图控制器中。 – rmaddy

+0

@Tom ...按照rmaddy的说法进行操作,然后在终止时,最佳做法是将该文本保存到数据库,并在再次启动应用程序时检索它。 –

相关问题