Ios 按下“主页”按钮时暂停精灵套件场景

Ios 按下“主页”按钮时暂停精灵套件场景,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我想知道当按下“主页”按钮时,如何暂停我的精灵套件场景 我在这里找到了一些答案,并像这样尝试了通知中心 当我的场景加载时: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground) name:UIApplicationDidEnterBackgroundNotification

我想知道当按下“主页”按钮时,如何暂停我的精灵套件场景

我在这里找到了一些答案,并像这样尝试了通知中心

当我的场景加载时:

 [[NSNotificationCenter defaultCenter]
          addObserver:self
          selector:@selector(applicationDidEnterBackground)
          name:UIApplicationDidEnterBackgroundNotification
          object:nil];
然后,如果进入后台,则调用该方法:

 - (void) applicationDidEnterBackground{
     NSLog(@"Enter to background");
     self.scene.view.paused  =YES;
 }
这里的问题是我得到了NSLog消息,所以ApplicationIdentinterBackground方法被正确调用。但问题是,当我返回应用程序时,我的应用程序并没有处于“暂停”模式

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

如果我把确切的语句放在代码的其他地方,或者我用这个语句创建了一个暂停按钮,暂停就可以了


有什么问题?为什么通知中心无法使用此功能?

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


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

iOS 8精灵套件在退出后台模式后自动恢复游戏。它发生在调用ApplicationIDBecMeactive之后。此外,iOS 8的精灵套件会在游戏移动到后台时自动暂停游戏

更新:以下是进入/退出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

尝试添加will enter background而不是did enter background的通知实际上它被称为will demitactive@Fogmeister我试过了,但结果是一样的。我认为这是个问题。但同样使用WillResignActive,我不能暂停游戏。如果用户希望游戏也能在iOS 7上使用怎么办?如果我想暂停怎么办?该用户能够自己按下播放按钮吗?我已经尝试过在ApplicationIDBecMeactive中放入(self.scene.view.paused=YES;)语句,当我返回到应用程序时,它可以工作!!谢谢。。非常有用的信息!但问题是,有时应用程序会重新启动,而不是暂停?@ZeMoon查看我编辑的答案。Matiass21,是否在应用程序代理中添加了“暂停=是”语句?添加按钮后,需要暂停视图。这里有一个方法