我有一个应用程序在我的一个类中的viewWillDisappear
方法中存储值。例如,我将数据和时间存储在viewWillAppear
方法中,并在viewWillDisappear
方法中再次存储,因此我可以比较时差并将其记录下来。
但是,如果用户按下设备上的主页按钮,则不会运行viewWillDisappear
代码。我试图在AppDelegate
的{{1}}中调用此特定方法,但这会存储错误的信息,因为applicationDidEnterBackground
方法实际上并未运行。我还尝试将它们存储在viewWillDisappear
中,但同样,由于未运行NSUserDefaults
方法,因此会存储错误的值。
用户按下主页按钮后,是否有办法为该视图运行viewWillDisappear
方法?
答案 0 :(得分:8)
在此通知的viewWillAppear注册表中......
-(void)viewWillAppear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(appEnteredBackground:)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
}
-(void)viewWillDisappear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
-(void)appEnteredBackground:(NSNotification *)appEnteredBackgroundNotification {
//do your thing
}