当用户进入后台时,我正试图让我的游戏暂停(同时保存游戏的当前状态,如计时器值和分数)。我知道我必须在
中实现这一点 - (void)applicationDidEnterBackground:(UIApplication *)application
方法
但我不知道怎么做。我猜我首先要检查当前用户当前的视图控制器是否是游戏场景,然后,如果是,我将该方法称为暂停。我有正确的想法吗?我不知道如何访问当前的视图控制器。任何人都能解释一下吗?
答案 0 :(得分:2)
您的问题是让您的游戏视图控制器知道应用程序将进入后台?
当您的游戏视图控制器出现时,使用通知中心注册它以侦听UIApplicationDidEnterBackgroundNotification通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myBackgroundHanlerMethod:) name: UIApplicationDidEnterBackgroundNotification object:nil];
并在
中处理通知- (void)myBackgroundHanlerMethod:(NSNotification *)notification;
答案 1 :(得分:2)
子类UINavigationController并将视图控制器添加为UIApplicationDidEnterBackgroundNotification的观察者
@interface GameViewController : UIViewController
@end
@implementation GameViewController
- (void) init {
self = [super init];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(saveGameState) name: UIApplicationDidEnterBackgroundNotification object: nil];
}
}
- (void) delloc {
[[NSNotificationCenter defaultCenter] removeObserver: self name: UIApplicationDidEnterBackgroundNotification object: nil];
}
- (void) saveGameState {
//do the things you neeed to do
}
@end