Swift iOS:执行从 ViewController 中的一个实例到另一个 ViewController 中的实例的 Segue

Swift iOS: Perform a Segue from an Instance in a ViewController to another ViewController

首先要说的是,这个平台上的信息量这么大,全靠大家的帮助。非常感谢。

目前,我已经到了无法靠自己走得更远的地步。

这是我的问题:

我有一个嵌入在导航控制器中的 MainScreen ViewController。 从这个 MainScreen,我可以用 Segue 显示一个 GameViewController 来创建一个游戏场景。 在这个游戏场景中,我有一个按钮,当它被点击时,会显示一个弹出窗口并暂停游戏场景。

这个 Popup 包含两个按钮:

  1. 用于恢复游戏并使弹出窗口消失的按钮。
  2. 应该结束游戏场景并 return 到主屏幕的按钮。

这是我的问题。 我无法为结束按钮创建功能。我尝试过不同的 constellations 和 segues,但结果并不好。

我认为这里的困难在于,这个按钮在一个单独的 class 中。据我了解,这里的层次结构是:

游戏ViewController -> GameScene -> 弹出窗口 -> EndButton。

你有什么办法可以解决这个问题吗?是否有其他方法可以在不使用 segues 的情况下解决此转换问题?

非常感谢您的提前帮助!

亲切的问候, 菲尔

更新:

在我的 Gamescene 中,弹出窗口基本上是这样的:

class GameScene: SKScene,  SKPhysicsContactDelegate {

  //  ....
  var pauseButton : UIButton! = UIButton()
  var pausePopup : PausePopup!    // my Popup class with the End button
  //  ....

  override func didMoveToView(view: SKView) {

    //configuring the button
    pause_button.addTarget(self, action: "pauseButtonPressed", forControlEvents: UIControlEvents.TouchUpInside)

    self.view?.addSubview(pause_button)

  }

  func pauseButtonPressed() {
    self.pausePopup = PausePopup(nibName: "uxPausePopup", bundle: nil)
    self.scene!.view!.paused = true
    self.pausePopup.showInView(self.viewPlaceHolder, animated: true, scene: self)
  }
    // this is where my popup appears.

在我的 Popup class 中,我对位于 Popup 上的 EndButton 有一个操作,我想从中 return 到主屏幕:

@IBAction func showMainScreen(sender: AnyObject) {
   // this does not work ...
   self.performSegueWithIdentifier("showMainScreen", sender: nil)
}

您不能从 showInView 调用其他视图,您需要关闭 popOver 并从 GameScene 调用 mainView,为此您可以在 PausePopup 中创建一个竞争处理程序或将 popOver 的结果传递给 GameScene 的协议处理结果