应用程序中的调用函数didbecomeactive - Swift 2.0
Posted
技术标签:
【中文标题】应用程序中的调用函数didbecomeactive - Swift 2.0【英文标题】:Call function in applicationdidbecomeactive - Swift 2.0 【发布时间】:2016-08-23 18:16:29 【问题描述】:所以,我的 GameScene.swift 文件中有一个函数,我想在每次游戏激活时调用它。目前我在我的 GameScene.swift 文件中的 didMoveToView 中运行此功能,但它仅在应用程序完全关闭后启动时运行,我希望每次游戏激活时都执行此操作。 (用户点击主页按钮,然后重新打开应用程序)
我假设在 AppDelegate.swift 文件中的 applicationdidbecomeactive 中运行 func 会起作用,但我不确定如何执行此操作或是否真的可行。任何帮助,将不胜感激。
【问题讨论】:
提一下这个函数可能会有所帮助该应用程序变得活跃我全神贯注。谢谢! 【参考方案1】:您可以在 GameScene.swift 中为 UIApplicationDidBecomeActiveNotification
添加观察者并调用您的函数。例如
NSNotificationCenter.defaultCenter().addObserver(self,
selector: #selector(GameScene.yourfunction,
name:UIApplicationDidBecomeActiveNotification, object: nil)
【讨论】:
#selector 现在是编写选择器的合适方式。 做到了!谢谢! SWIFT 3 更新:NotificationCenter.default.addObserver(self, selector: #selector(ViewController.checkBundleSettings(notification:)), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
,方法为:func checkBundleSettings(notification: Notification)...your method
【参考方案2】:
在这种情况下,在 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
//
【讨论】:
【参考方案3】:这是基于@firstinq 答案的SWIFT 5更新
NotificationCenter.default.addObserver(self, selector: #selector(MainViewController.appDidBecomeActive), name:UIApplication.didBecomeActiveNotification, object: nil)
【讨论】:
以上是关于应用程序中的调用函数didbecomeactive - Swift 2.0的主要内容,如果未能解决你的问题,请参考以下文章
在应用程序DidBecomeActive 之后立即调用iOS 应用程序DidEnterBackground 时?
强制 App 导航到 App DidBecomeActive 中的特定视图
SpriteKit - didBecomeActive 时不显示暂停屏幕
Spritekit - 在 didBecomeActive 时保持游戏暂停
UISceneDelegate 和 UIApplicationDelegate 的“didBecomeActive”和“willResignActive”方法对之间的区别?