- (void)applicationDidEnterBackground:(UIApplication *)application

问题描述:

我可以在AppDelegate以外的地方使用下面的方法吗?- (void)applicationDidEnterBackground:(UIApplication *)application

- (void)applicationDidEnterBackground:(UIApplication *)application 

这是UIApplicationDelegate协议的一种方法,只能通过符合它的类来实现。

您可以通过使用NSNotificationCenter对象的通知设置为从您的应用程序委托在您的应用程序的其他对象:

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"didEnterBackground" object:self]; 
} 

也有UIApplicationDidEnterBackgroundNotification通知,你可以听的,而不是做以上。

注册要听这样的通知的对象:

[[NSNotificationCenter defaultCenter] addObserver:someObject selector:@selector(someMethod:) name:@"UIApplicationDidEnterBackgroundNotification" object:nil]; 
+0

你可以举一个例子说明在哪里放置这段代码,以及如何调用它?换句话说,这是为了保存整个视图还是视图中的对象? – Jason 2012-05-29 02:06:12

+0

请勿使用第一个选项。在第二个选项中使用适当的常量,而不是硬编码通知名称。 – rmaddy 2014-07-10 17:20:34

没有,但你可以有其他对象注册了UIApplicationDidEnterBackgroundNotification通知。这些对象随后会在调用applicationDidEnterBackground:的同时被通知。

+0

这个答案似乎更可取,因为您没有发布冗余通知。 – BadPirate 2012-12-19 01:43:08