【问题标题】:Call function in applicationdidbecomeactive - Swift 2.0应用程序中的调用函数didbecomeactive - Swift 2.0
【发布时间】:2016-08-23 18:16:29
【问题描述】:

所以,我的 GameScene.swift 文件中有一个函数,我想在每次游戏激活时调用它。目前我在我的 GameScene.swift 文件中的 didMoveToView 中运行此功能,但它仅在应用程序完全关闭后启动时运行,我希望每次游戏激活时都执行此操作。 (用户点击主页按钮,然后重新打开应用程序)

我假设在 AppDelegate.swift 文件中的 applicationdidbecomeactive 中运行 func 会起作用,但我不确定如何执行此操作或是否真的可行。任何帮助,将不胜感激。

【问题讨论】:

  • 提一下这个函数可能会有所帮助该应用程序变得活跃我全神贯注。谢谢!

标签: ios swift


【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      相关资源
      最近更新 更多