2017-02-05 24 views
1

私は、ユーザーに4ishボタンの1つを押してから、シーンを提示するViewControllerをロードし、ユーザーがどのボタンがあったかに基づいてゲームをプレイすることを促すメニュービューコントローラーで始まるアプリを持っています押されたSKSceneを完全に終了する

次に、条件が満たされると(ゲームを失う)、別のシーンを表示する別のビューコントローラにリダイレクトされることになります。問題は2番目のviewcontroller(と私はそれがシーンだと仮定しています)がまだ実行中です。私は、それがまだそこにあるかどうかを確認するために、関数のオーバーライド更新メソッドの中にprintステートメントがあるので、これを知っています。

さらに、私は古いゲームでオーディオを再生していますが、現在再生中です。後で私は3つのすべてのviewcontrollerとその提示されたシーンの間でオーディオデータ(すべてミュート)を渡すことになります。

私は古いviewiewcontrollerからアプリケーションを実行すると、そのシーンはまだ下に実行されているように見えますが、条件が満たされたときに変わった外観を引き起こす遷移を呼び出し続けます。トランジションは新しいビューコントローラに無限にループし、次にトランジションの始めに戻り、再び新しいビューコントローラに戻ります。

私は、コードのこの作品試してみた:

let theVC = self.viewController?.storyboard?.instantiateViewController(withIdentifier: "TrumpVC") as! TrumpViewController 

self.viewController?.navigationController?.pushViewController(theVC, animated: true) 

self.viewController?.dismiss(animated: true, completion: {}); 

をしかし、すべてで助けていないようです:(基本的に私は、これはすべて私にある(新しいのViewControllerに移動し、現在の1を解任シーン)

おかげ

答えて

0

ソリューション:

let theVC = self.viewController?.storyboard?.instantiateViewController(withIdentifier: "TrumpVC") as! TrumpViewController 

self.viewController?.navigationController?.pushViewController(theVC, animated: true) 
self.viewController?.removeFromParentViewController() 
self.viewController?.dismiss(animated: true, completion: nil) 
self.view?.presentScene(nil)