您好我尝试在GameScene
中的游戏中点击标签返回mainMenu
时执行segue,在情节提要中创建MainMenu
并且有一个segue集从GameScene
到名为MainMenu
的{{1}}。我目前必须完成的代码是:
在GameSceneViewController中,我的代码是
gameToMain
在我的GameScene中我添加了
class GameViewController: UIViewController {
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
}
和
var viewController: UIViewController?
我在解包Optional值时收到错误func segue(){
self.viewController!.performSegueWithIdentifier("gameToMain", sender: viewController)
}
。
我认为问题是发件人,我已经设置了fatal error: unexpectedly found nil
,但我不确定如何解决问题。谢谢!
答案 0 :(得分:0)
问题似乎是您没有设置viewController
,因为您将此视为错误...
fatal error: unexpectedly found nil
创建GameScene
时我猜你没有正确设置viewController变量。用你提供的有限代码很难确定,但我会首先看一下。如果不是问题,我会更新你关于如何创建gameScene以及何时创建的问题。
你也可以在调用segue之前注销视图控制器,只是为了验证它是否为零。
修改强>
获得其他代码后,我相信您的问题就在这里......
skView.presentScene(GameScene(size: skView.bounds.size))
您正在创建一个全新的场景,而不是使用您在上面创建的场景。应该是这个......
skView.presentScene(scene)
此外,如果你想回到之前的viewController,你不会在这个例子中调用一个segue,就像这样......
viewController.dismissViewControllerAnimated(true, completion: nil)
希望这有帮助。