我的故事板的结构:

1.Screen1(UIViewController)

2.GameScreen(SKScene)

3.Screen3(UIViewController)

我正在从Screen1传递UIViewController自对象

//Screen1 class

@IBAction func onStartButtonClicked(_ sender: Any) {
    Values.viewController = self
}


进行游戏时,转到GameScreen:

//GameScreen class

struct Values {
   static var viewController: UIViewController!
}

class GameScreen: SKScene {...}


我的任务是使用Screen1的对象从GameScreen到Screen3进行筛选,该对象已从上一步传递:

Values.viewController!.performSegue(withIdentifier: "toScoreSegue1", sender:  self)


一切都应该正常工作,因为我将一个segue从Screen1拖动到Screen3,为其指定了标识符“ toScoreSegue1”,并使用Screen1对象对其进行了调用。但是,没有任何反应。

没有错误等。

任何帮助将不胜感激!

最佳答案

我发现了一个问题!

我错误地在错误的ViewController上调用了performSegue。

我必须在初始化SKScene视图的ViewController上调用segue:

1.Screen1(UIViewController)

2.GameScreen(SKScene)-有自己的ViewController,应该使用它代替Screen1!

3.Screen3(UIViewController)

我真的希望有人遇到同样的问题可能会有所帮助。

10-07 19:43