![](/img/trans.png)
[英]How to change scene when button is pressed using Sprite Kit and swift 2
[英]Pause Sprite Kit scene when home button is pressed
我想知道如何在按下主页按钮时暂停我的精灵套件场景。
我在这里找到了一些答案并尝试了这样的通知中心。
我的场景加载时:
[[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;)没有被调用?
如果我在代码中的其他地方放置确切的语句,或者如果我使用此语句创建一个暂停按钮,则暂停工作正常。
问题是什么? 为什么这不适用于通知中心?
用于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
通知并处理我们的前退出代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.