我是Swift的新手,很抱歉,如果这似乎是一个明显的问题。
我正在尝试用Swift写一个游戏,我在故事板中设计了一个标签和一个播放按钮。
我在 GameViewController.swift 文件中添加了对这些对象的引用,如下所示:
// MARK: Objects
@IBOutlet var gameLabel: UILabel!
@IBOutlet var playButton: UIImageView!
// MARK: Actions
@IBAction func playButtonTapped(sender: UITapGestureRecognizer) {
GameScene().gameStart()
}
这属于GameViewController类:class GameViewController: UIViewController
。
然而,主游戏本身发生在 GameScene.swift 中。这涉及到我必须在游戏开始时隐藏标签和图像。我不确定如何设置隐藏这些对象的属性,因为如果我在 GameScene.swift 中执行了以下操作:
GameViewController().playButton.hidden = true
......游戏因致命错误而崩溃。错误说明:致命错误:在解包可选值时意外发现nil。
有没有人对此问题有任何建议?任何帮助深表感谢。对不起,如果信息很难理解。
干杯。
答案 0 :(得分:1)
您正在创建一个新的' GameViewController(), but you want you want use your already existent one. If you only want to create one
GameViewController`实例,可能就是这种情况,您可以使用静态实例变量。
在GameViewController
中,输入:
static var instance: GameViewController!
在其viewDidLoad()
中,放置:
GameViewController.instance = self
最后,在GameScene
中,使用GameViewController()
切换GameViewController.instance
。