ボタンを押したら SpriteKit に切り替えるには・・・

アプリを作成中なんですが、今のままの機能だけでは reject 必至だろうということで、ミニゲームの機能も持たせることにしました。アプリの画面にボタンを用意して、ボタンを押したら spritekit の画面に切り替えようとしたところエラー発生・・・

呼び出し元のボタンでは、以下のように呼びます。

   [self presentViewController:gameViewController animated:YES completion:nil];

呼ばれた ViewController は spritekit の Scene を呼ぶわけですが、この ViewController の実態は UIViewController。テンプレまんまで、以下の通り。

SKView* skView = (SKView *)self.view;

これではダメで、以下の通りでようやくうまくいきました。

    

    CGRect applicationFrame = [[UIScreen mainScreen] bounds];

    SKView *skView = [[SKView alloc] initWithFrame:applicationFrame];

    self.view = skView;

 

実は以前もトライして、うまくいかなかったんですが、今にしてようやくなるほどと。