无法将'UIView'类型的值转换为'SKView'

时间:2015-10-07 22:41:10

标签: ios swift uiview

我有两个View Controllers,一个是GameViewController(这个是我开始一个新游戏项目时由xcode创建的)和MenuViewController。最后一个向用户显示一个“开始游戏”按钮。按下按钮时,应显示GameViewController视图。但是,程序崩溃而是标题中的消息。

在'MenuViewController'我有

func startGameButtonAction(sender:UIButton!) {

        let gameViewController = GameViewController()
        self.presentViewController(gameViewController, animated: true, completion: nil)

}

在'GameViewController'我有

 override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(true)

        let skView = self.view as! SKView // crash occurs here
 }

我需要skView作为SKView,因为GameViewController提供了一个SKScene。

2 个答案:

答案 0 :(得分:3)

如果您是用户故事板,则可以将View的自定义类设置为SKView,如下所示:

enter image description here

然后:

enter image description here

答案 1 :(得分:1)

这是因为color_map = { 0: 'k', 1: 'orange } plt.scatter(x, y, c=[color_map.get(v, 'cyan') for v in z]) 不是self.view。如果你在Interface Builder中检查视图,你会发现它可能只是一个通用的SKView

此外,您可以在崩溃的行上设置断点,然后在运行时可以打印UIView以确认它是什么类。