Ios 从游戏场景切换到viewController Swift 3
我需要从游戏场景切换到UIViewController。到目前为止,我的代码如下: 在GameViewController.swift中,我添加了:Ios 从游戏场景切换到viewController Swift 3,ios,swift,uiviewcontroller,sprite-kit,swift3,Ios,Swift,Uiviewcontroller,Sprite Kit,Swift3,我需要从游戏场景切换到UIViewController。到目前为止,我的代码如下: 在GameViewController.swift中,我添加了: if let view = self.view as! SKView? { if let scene = SKScene(fileNamed: "GameScene") { scene.scaleMode = .aspectFill scene.viewController = se
if let view = self.view as! SKView? {
if let scene = SKScene(fileNamed: "GameScene") {
scene.scaleMode = .aspectFill
scene.viewController = self
view.presentScene(scene)
}
...
在我的游戏场景中,我加了一句
class GameScene: SKScene, SKPhysicsContactDelegate {
var viewController: UIViewController?
...
以及
func returnToMainMenu(){
self.viewController.performSegueWithIdentifier("push", sender: viewController)
}
所以我的问题是,当我state-scene.viewController=self时,我得到一个错误,它说“类型为'SKScene'的值没有成员'viewController'”。如何解决此问题?问题在于
viewController
属性是在GameScene
中声明的,但创建场景时,它的类型为SKScene
。修复此问题的简单方法是将场景初始化为游戏场景
,然后您可以访问游戏场景
中声明的成员
if let scene = GameScene(fileNamed: "GameScene") {
// Other code
scene.viewController = self
}
另外,返回主菜单时,您应该尝试退出顺序,但这是另一个主题。出于好奇。什么是退出序列?你可以在这篇文章中阅读关于退出序列的内容