SpriteKitのSKScene内から通常のViewControllerを呼び出したくなることがあるだろう。
今回はその方法を探っていく。
 
SpriteKitのプロジェクトを作成したばかりのところから始めよう。
ViewController.mを見ると何の事はない、SKSceneを追加しているだけで、いつも私達が使っているViewControllerと何ら変わりない。

なので、一番手っ取り早いのはStoryboardでこのようにしてしまうことだ。
SpriteKitToModal_ss1
ボタンを置いて、そこからmodalでセグエを設定してやれば良い。
これだけで画面遷移は可能だ。

しかし、ゲーム画面に常にボタンを表示しておくわけにも行かない。
別の方法を考えよう。

先ほどのボタンとセグエは一旦削除する。
その上で、新しくViewControllerから2番めのViewControllerにセグエを設定する。
SpriteKitToModal_ss2
そのセグエにはIDを設定する。
ここでは"presentSecond"としておく。
SpriteKitToModal_ss5
それでは、2番目のViewControllerを呼び出すコードを書いていく。
MyScene.mを開こう。

今回は処理を簡単にするために画面にタッチしたら画面遷移を行うようにする。
touchesBeganメソッドを以下のように実装しよう。

さあ、実行してみよう。
問題なく画面遷移を行うことが出来た!
SpriteKitToModal_ss6
 
参考文献
ios - How to present a modal view in sprite kit? - Stack Overflow