制作一个没有隐藏在GameScene中的按钮

时间:2015-08-05 22:45:24

标签: ios swift button viewcontroller xcode-storyboard

你好我的问题是如何取消隐藏GameScene中的按钮。我有一个在故事板中设置的segueToMainMenu按钮。 这就是我的GameViewController的外观:

@IBOutlet weak var segueToMainMenu:UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    let scene = GameScene(size: view.bounds.size)
    let skView = view as! SKView
    skView.showsFPS = true
    skView.showsNodeCount = true
    skView.ignoresSiblingOrder = false
    scene.scaleMode = .AspectFill
    skView.presentScene(GameScene(size: skView.bounds.size))
    scene.viewController = self

    self.segueToMainMenu.hidden = true
}

我将按钮设置为隐藏但现在在我的游戏中我想在GameScene中运行lost func时取消隐藏它,因为当点击按钮时它会回到主菜单,这是一个单独的视图控制器,也是在故事板。什么都有帮助谢谢。

1 个答案:

答案 0 :(得分:0)

你可以为你的场景创建一个委托,它会在gameOver上调用适当的方法并执行类似的操作

// in the view controller
func gameSceneDidSendGameOver() {
    self.segueToMainMenu.hidden = false
}

//in the scene
var gameOverDelegate : GameOverDelegate?

func gameOver() {
    gamOverDelegate?.gameSceneDidSendGameOver()
}

或者做一些丑陋的方式:

func gameOver() {
    let gvc = self.viewController as GameViewController
    gvc.segueToMainMenu.hidden = false
}

编辑:委托协议声明。

protocol GameOverDelegate {
    func gameSceneDidSendGameOver()
}

class GameViewController : ViewController, GameOverDelegate {
...
    func gameSceneDidSendGameOver() {
        self.segueToMainMenu.hidden = false
    }
}