ios - 制作一个不隐藏在 GameScene 中的按钮

标签 ios swift button viewcontroller xcode-storyboard

您好,我的问题只是如何在 GameScene 中取消隐藏按钮。我有一个在 Storyboard中设置的 segueToMainMenu 按钮。 这就是我的 GameViewController 的外观:

@IBOutlet 弱变量 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 中运行失败函数时,我想取消隐藏它,因为单击按钮时,它会返回到主菜单,这是一个单独的 View Controller ,也是在 Storyboard。任何帮助谢谢。

最佳答案

您可以为您的场景创建一个委托(delegate),它将在 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
}

编辑:委托(delegate)协议(protocol)的声明。

protocol GameOverDelegate {
    func gameSceneDidSendGameOver()
}

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

关于ios - 制作一个不隐藏在 GameScene 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844055/

相关文章:

iphone - iPhone 中的 UIActivityIndi​​catorView 出现问题?

ios - UITableView 部分中的背景图像隐藏部分标题

ios - 当应用程序处于未运行或后台状态时如何处理推送通知有效负载而不点击它

ios - 横向打印 A5 尺寸的 PDF

ios - UIButton 选择器不工作

html - 表单输入和按钮没有完全对齐

ios - 如何调用 graphql API

ios - 使用 RxSwift 时如何在 UITableViewCell 中保留 UITextField 的值?

swift - 您可以将 Swift 用作 Web 编程语言吗?

android - 在 Android 中的切换按钮中的轨道上写入文本