从 GameScene 转到 viewController Swift 3
Posted
技术标签:
【中文标题】从 GameScene 转到 viewController Swift 3【英文标题】:Segue from GameScene to a viewController Swift 3 【发布时间】:2016-10-29 22:05:52 【问题描述】:我需要从 GameScene 到 UIViewController 进行转场。到目前为止,我的代码如下:
在我添加的 GameViewController.swift 中:
if let view = self.view as! SKView?
if let scene = SKScene(fileNamed: "GameScene")
scene.scaleMode = .aspectFill
scene.viewController = self
view.presentScene(scene)
...
在我的 GameScene.swift 中我添加了
class GameScene: SKScene, SKPhysicsContactDelegate
var viewController: UIViewController?
...
还有
func returnToMainMenu()
self.viewController.performSegueWithIdentifier("push", sender: viewController)
所以我的问题是,当我声明 -scene.viewController = self - 我收到一条错误消息,提示“'SKScene' 类型的值没有成员 'viewController'”。我该怎么做才能解决这个问题?
【问题讨论】:
【参考方案1】:问题是viewController
属性是在GameScene
中声明的,但是在创建场景时它的类型是SKScene
。修复它的简单方法是将场景初始化为GameScene
,然后您将可以访问在GameScene
中声明的成员。
if let scene = GameScene(fileNamed: "GameScene")
// Other code
scene.viewController = self
此外,您应该在返回主菜单时尝试退出序列,但这是另一个话题。
【讨论】:
出于好奇。什么是退出转场? 您可以在此 SO answer 中阅读有关退出序列的信息以上是关于从 GameScene 转到 viewController Swift 3的主要内容,如果未能解决你的问题,请参考以下文章
您如何存储 GameScene 以便我可以从 InGame 菜单转换回它?
从 GameViewController 访问按钮、标签和 uiimageviews 到 GameScene
从 AppDelegate 调用 GameScene 方法(Swift 3、SpriteKit、Xcode 8)
在 GameScene 和 ViewController Swift 之间移动