gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:06:28 29 4
gpt4 key购买 nike

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

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

这是我的问题:

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

这个 Popup 包含两个按钮:

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

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

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

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

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

最佳答案

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

关于 swift iOS : Perform a Segue from an Instance in a ViewController to another ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30404285/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com