以编程方式触发展开segue

问题描述 投票:0回答:1

我正在制作一个应用程序,在按下“开始”按钮时会转到另一个屏幕。 3秒后,屏幕变黑。然后6秒钟后我想让它放松回主屏幕而不必点击按钮,但到目前为止我不知道如何让它工作。

我已经从视图控制器拖动到退出按钮以创建展开segue,但我不知道如何在代码中调用它。

这是我在GameViewController中与segue相关的代码:

导入UIKit导入SpriteKit导入GameplayKit

class GameViewController:UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    let skView = view as! SKView
    let scene = GameScene(size: view.bounds.size)

    //skView.showsFPS = true
    scene.scaleMode = .resizeFill
    scene.vc = self
    skView.presentScene(scene)
}

@IBAction func unwindToMainMenu(sender: UIStoryboardSegue)
{

    //let gameVeiwController = sender.source]
    // Pull any data from the view controller which initiated the unwind segue.
}

现在这是我的GameScene类,包含我要解开segue的函数:

class GameScene: SKScene {

var vc: UIViewController?

private var circleNode : SKShapeNode?

var fingersDown: Int = 0
let maxFingers: Int = 4
var selectionStarted = false

var touchNodes = [UITouch:SKShapeNode]()

func startSelectionGame(){
    selectionStarted = true
    self.backgroundColor = UIColor.yellow
    _ = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { timer in
        //both dont work
        self.vc!.performSegue(withIdentifier: "unwindToMainMenu", sender: self.vc)
        self.vc?.performSegue(withIdentifier: "unwindToMainMenu", sender: self)
    }
    _ = Timer.scheduledTimer(withTimeInterval: 3.0, repeats: false) { timer in
        self.backgroundColor = UIColor.black
        self.changeColors()
    }

}

Main.storyboard只有从第一个屏幕到游戏屏幕的segue。

我只想让我的程序正常运行,我知道我错过了一些简单的东西。谢谢。

swift xcode segue unwind-segue
1个回答
2
投票

你需要做3件事:

  1. 在左侧的“文档大纲”视图中找到您的segue。点击它。
  2. 在右侧的属性检查器中,将标识符设置为unwindToMainMenu
  3. 如果要触发它,请调用self.performSegue(withIdentifier: "unwindToMainMenu", sender: self)
© www.soinside.com 2019 - 2024. All rights reserved.