当主页button被按下时暂停Sprite Kit场景

我想知道如何当我按下主页button时暂停我的精灵套件场景。

我在这里find了几个答案,并尝试与这样的通知中心。

当我的场景加载时:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground) name:UIApplicationDidEnterBackgroundNotification object:nil]; 

然后,如果进入后台,则调用该方法:

  - (void) applicationDidEnterBackground{ NSLog(@"Enter to background"); self.scene.view.paused =YES; } 

这里的问题是,我得到的NSLog消息,所以applicationDidEnterBackground方法被正确调用。 但问题是,当我返回到应用程序我的应用程序不处于“暂停”模式。

所以我的暂停语句(self.scene.view.paused = YES;)不被调用?

如果我把确切的声明放在代码的其他地方,或者如果我用这个语句暂停button暂停工作就好了。

问题是什么? 为什么这不会与通知中心?

适用于iOS 8的Sprite工具包将在退出后台模式后自动恢复游戏。 它发生在applicationDidBecomeActive被调用之后。 此外,iOS 8的Sprite工具包在移动到背景时会自动暂停游戏。

更新:以下是进入/退出Xcode 5和6的背景模式时skView.paused的状态。

Xcode 6

部署目标7.0,7.1 **,8.0和8.1

 applicationWillResignActive = NO applicationDidEnterBackground = YES applicationWillEnterForeground = YES applicationDidBecomeActive = YES 

**当我在运行iOS 7.1的设备上运行时,状态都是NO

Xcode 5

部署目标7.0和7.1

 applicationWillResignActive = NO applicationDidEnterBackground = NO applicationWillEnterForeground = NO applicationDidBecomeActive = NO 

当你的应用程序进入后台时,可能已经太晚了。

相反,我们应该注册UIApplicationWillResignActiveNotification通知,并在收到此通知时处理我们刚刚退出的代码。