我想调用ApplicationDidEnterBackground。 我在MainViewController.m中使用此代码
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:_savedText];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"savedText"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
但我认为它从来没有打过电话。我试图将内容放在app委托中,但后来我收到错误,因为它无法找到" _savedText"。我是否需要导入" _savedText"应用程序委托还是我应该这样做?
答案 0 :(得分:0)
-applicationDidEnterBackground:
是UIApplicationDelegate
协议的一部分。它是应用程序将发送给应用程序委托的消息。在其他一些类上实现一个具有相同名称的方法,在这种情况下是视图控制器,不会导致它被调用。
如果您需要视图控制器对进入后台的应用程序作出反应,您可以通过通知中心订阅UIApplicationDidEnterBackgroundNotification
通知。
但是,如果控制器需要知道像这样的应用程序范围的事件,那么我怀疑控制器负责太多的问题,你可能想要考虑如何简化它。