Ios ApplicationIdentinterBackground未运行
我把它放在我的ViewController.m文件中,当我的应用程序进入后台时,Ios ApplicationIdentinterBackground未运行,ios,objective-c,Ios,Objective C,我把它放在我的ViewController.m文件中,当我的应用程序进入后台时,NSLog永远不会被调用 有人能解释为什么吗 - (void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"Application entered background state."); } 这是应用程序的委托方法。将其放入实现uiapplicationelegate协议的对象中,默认情况下,该协议是在启动新项
NSLog
永远不会被调用
有人能解释为什么吗
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"Application entered background state.");
}
这是应用程序的委托方法。将其放入实现
uiapplicationelegate
协议的对象中,默认情况下,该协议是在启动新项目时为您创建的应用程序的委托类
或者使用通知中心获取切换到后台事件的通知。只需将视图控制器注册为UIApplicationIdentinterBackgroundNotification
的观察者。它是在进入后台时发送的
例子
如何在委托中从VC调用方法?在我的应用程序进入后台之前,我需要调用一个方法。你可以在应用程序委托中保留对视图控制器的引用,然后直接调用它。@reecon在视图控制器中使用
UIApplicationIdentinterBackgroundNotification
的更新答案比在应用程序委托中保留对控制器的引用要好得多。@rmaddy,我知道,我刚刚意识到这一点并更新了答案。无论如何,这要看情况而定。如果OP有一个单一的视图应用程序,那么它不会有太大的区别。这是所有权的问题。逻辑属于应该知道应用程序在后台运行时应该做什么的类。为什么希望在不是应用程序委托的类中调用uiapplicationelegate
中的方法?
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleDidEnterBackgroundNotification:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];