GameScene
からViewController
へdelegateを通したのですが正しく機能しません。
やりたいこと
GameScene
の特定のイベント時の動作をViewController
へ移譲したい
コード
swift
protocol TestDelegate { func start() -> Int } class TestViewController: UIViewController, TestDelegate { var mainGmScn: MainGameScene? override func viewDidLoad() { super.viewDidLoad() if let scene = SKScene(fileNamed: "MainGameScene") { mainGmScn = scene as? MainGameScene mainGmScn?.testDlgt = self } } func start() -> Int{ let test = 0 return test } } class MainGameScene: SKScene { var tsetDlgt: TestDelegate? override func didMove(to view: SKView) { print("\(tsetDlgt?.start())") // -> nil } }
補足
TestViewController
’ ↳MainSKView
’ ↳MainGameScene
という階層になっているので不要だと判断したコードは省略しております。
不足している情報があればすぐに質問内容の編集を行うの申し付けください。
この問題を解決できる方法をご存知の方、何卒ご教授ください。
宜しくお願いします。
まだ回答がついていません
会員登録して回答してみよう