所以,我的GameScene.swift文件中有一个func,我想在每次游戏激活时调用它。目前我在我的GameScene.swift文件中的didMoveToView中运行此函数,但它仅在应用程序在完全关闭后启动时运行,并且我希望每次游戏变为活动时都这样做。 (用户点击主页按钮,然后重新打开应用程序)
我假设在AppDelegate.swift文件中运行applicationdidbecomeactive中的func会起作用,但我不知道如何做到这一点,或者它是否真的可行。任何帮助,将不胜感激。
答案 0 :(得分:4)
您可以在GameScene.swift中为UIApplicationDidBecomeActiveNotification
添加一个观察者并调用您的函数。 e.g。
NSNotificationCenter.defaultCenter().addObserver(self,
selector: #selector(GameScene.yourfunction,
name:UIApplicationDidBecomeActiveNotification, object: nil)
答案 1 :(得分:0)
在这种情况下,在appDelegate中的applicationdidbecomeactive中发布NSNotification。
let nc = NSNotificationCenter.defaultCenter()
nc.postNotificationName("didBecomeActive", object: nil)
然后,将一个监听器附加到您的GameScene.swift文件。
let nc = NSNotificationCenter.defaultCenter()
nc.addObserver(self, selector: "didBecomeActive", name: "didBecomeActive", object: nil)
最后,实现选择器“didBecomeActive”
func didBecomeActive(notification:NSNotification) {
//Call your function here
//
}
答案 2 :(得分:0)
这是基于@firstinq答案的 SWIFT 5 更新
NotificationCenter.default.addObserver(self, selector: #selector(MainViewController.appDidBecomeActive), name:UIApplication.didBecomeActiveNotification, object: nil)