实例化*游戏场景*查看Swift

时间:2015-05-14 02:13:36

标签: ios swift sprite-kit

所以,我试图实例化一个视图控制器。问题是,我正在尝试实例化的视图是一个gameScene视图控制器(Sprite Kit)。此外,我从创建的观点也是一个gameScene视图。如果我从普通的UIViewController实例化,我会这样做:

let vc : AnyObject! = self.storyboard!.instantiateViewControllerWithIdentifier("main")
self.showViewController(vc as! UIViewController, sender: vc)
//the view that I am instantiating's class name is "GameScene"

当我尝试运行此操作时,我收到两个错误:

gameScene does not have member named "storyboard"
'GameScene' does not have a member named 'showViewController'

有人可以解释为什么这不起作用,还请发布一个有效的解决方案吗?

提前非常感谢!

1 个答案:

答案 0 :(得分:0)

这是因为游戏场景没有名为storyboardshowViewController的属性。这些是UIViewController类的一部分。
。要在GameScene中访问它们,您可以在GameScene中创建一个指向当前UIViewController的属性。

class GameScene: SKScene {
    var gameViewController : UIViewController!
}

您可以在GameViewController类中分配属性。

override func viewDidLoad() {
    super.viewDidLoad()

    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {

        // Configure the view code

        scene.gameViewController = self // Added line

        skView.presentScene(scene)
    }
}

然后你可以在GameScene内使用它。

let vc : AnyObject! = self.gameViewController.storyboard!.instantiateViewControllerWithIdentifier("main")
self.gameViewController.showViewController(vc as! UIViewController, sender: vc)