【问题标题】:Swift iOS: Perform a Segue from an Instance in a ViewController to another ViewControllerSwift iOS:从 ViewController 中的实例执行 Segue 到另一个 ViewController
【发布时间】:2015-08-04 22:11:01
【问题描述】:

首先,我不得不说,这个平台上有这么多的信息,因为每个人,谁在帮助。非常感谢。

目前,我已经到了一个点,我无法靠自己走得更远。

这是我的问题:

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

此弹出窗口包含两个按钮:

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

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

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

GameViewController -> GameScene -> Popup -> EndButton.

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

非常感谢您提前提供的帮助!

亲切的问候, 菲尔

更新:

在我的游戏场景中,弹出窗口基本上如下所示:

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 类中,我有一个 EndButton 操作,它位于 Popup 上,我想从它返回到主屏幕:

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

【问题讨论】:

  • 嗨菲尔。您能否提供有关您显示的“弹出窗口”的更多信息,例如您用于显示它的代码?
  • 嗨。我刚刚更新了一些信息。如果您需要更多信息,请告诉我。

标签: swift button uiviewcontroller segue


【解决方案1】:

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

【讨论】:

  • 您好 IcaroNZ,非常感谢您的回答。我设法使用协议实现了我的目标。这确实是处理这个问题的一种非常简单的方法。亲切的问候
  • @Phil_G,很高兴听到我能提供帮助
猜你喜欢
  • 2015-11-23
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 2012-05-10
  • 2014-07-25
相关资源
最近更新 更多