在另一个类中调用函数的最佳方法?(迅速)

use*_*063 5 class function ios sprite-kit swift

所以,我有一个关于 Swift 中的类和函数的相当简单的问题。

假设我用 SpriteKit 制作了一个应用程序。我有一个 GameScene (SKScene)、一个 GameViewController (UIViewController) 和一个用于 GameViewController 的主故事板。

如果我想在我的 GameScene 顶部有一个按钮,我会将一个按钮 IBOutlet 从主故事板连接到 GameViewController。但是我如何设置它,以便在我触摸按钮时可以调用 GameScene 中的函数?

我必须通过委托来处理这个问题还是有更简单的方法?

编辑:

详细说明,我想调用的函数是:

  func resetScene(){
        self.removeAllActions()
        self.removeAllChildren()
    }
Run Code Online (Sandbox Code Playgroud)

我试图声明为 aclass func但不知何故它不太工作。

Pin*_*ink 5

从其他类调用函数基本上有四种方法。

  1. 类的实例。如果你有一个类Object的实例,你可以像myObject.buttonTapped()一样在该实例上调用Object 的方法。

  2. 通过委托:为A类创建一个协议,并在协议中声明方法。A 类必须有一个协议实例。在buttonTapped方法中调用该方法,如delegate.notifyButtonTapped()。在B类中,遵守协议并实现notifyButtonTapped()方法。

  3. 通知:从 A 类通过NotificationCenter发布通知,并将该通知添加到 B 类中。检查链接以获取更多信息。

  4. 闭包/块:在这种情况下,闭包不是最好的解决方案,它们可能相当复杂才能完全理解

你可以和代表团一起去这里。检查来自 rw 的此链接以进行澄清。