进入背景时暂停游戏

时间:2014-06-11 10:03:45

标签: ios objective-c gamekit

当用户进入后台时,我正试图让我的游戏暂停(同时保存游戏的当前状态,如计时器值和分数)。我知道我必须在

中实现这一点

- (void)applicationDidEnterBackground:(UIApplication *)application方法

但我不知道怎么做。我猜我首先要检查当前用户当前的视图控制器是否是游戏场景,然后,如果是,我将该方法称为暂停。我有正确的想法吗?我不知道如何访问当前的视图控制器。任何人都能解释一下吗?

2 个答案:

答案 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