1

私のゲームで自分のシーン/ビューのプロセスフローを処理する適切な方法を見つけようとしています。私は現在、メインメニューからゲームレベルに移行し、ゲームレベルを終了してメインメニューに戻ることができますが、いずれのビューからもメモリの割り当てを解除することはできません。Swift - 前のビューコントローラをセグ後に割り当て解除します

UINavigationControllerを使用してView Controllerを処理する方法がたくさんありました。しばらくの間、それを試した後、私の現在のストーリーボードは、次のようになります。

Main.storyboard

マイルートビューコントローラは、メニュービューコントローラです。私はまず、タイトルビューコントローラーで始まり、メニュービューコントローラーに続き、ゲームビューコントローラーとの間でセグをしますが、これは明らかに私のメモリーの割り当てを解除していません。

私seguesは、以下のものを使用してSKScenes内から実行されます:のViewControllerは、その親ビューコントローラを参照SKScene内のVARです

self.viewController?.performSegueWithIdentifier("segueName", sender: viewController) 

私のプロセスフローがうまくいくようにするための何かがありますか?私はちょうどログインとサーバー接続のためのタイトルシーンを横断し、メニューシーンとゲームシーンのいくつかの並べ替えを切り替える残りの時間を過ごすことができるようにしたい。

私はいくつかの提案、たとえばdismissViewControllerAnimated(true, completion: nil)を実装しようとしましたが、実際には何も割り当てを解除していないようです。メニューシーンとゲームシーンの間でわずか2-3サイクル後にゲームがクロールするまで遅くなります。

私はこれに似た質問をいくつか見てきましたが、これまでのところ、私にとってはうまくいく解決策を考え出すことができませんでした。私はSwiftとXcode 7.3.1でゲームを書いています。

+0

保持サイクル –

答えて

1

私は私の問題を解決しました。私は、私のビュー、シーン、およびビューコントローラのような様々なものへの強力な参照の束を持っていた。私は合計で〜200の強力な参照を持っていたので、私は多くの掃除をする必要があります。 In swift, how to get memory back to normal after an SKScene is removed?

私は修正助けたものだ。この同じ問題を持つhttps://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started

誰でも、この質問をチェックアウト:

私の強い参照を検索するには、私はここでXcodeで割り当て楽器を使用する方法についてのガイドを追いました私の問題。

0

あなたはさまざまなアプローチを検討しましたが、ほとんどがあなたにとって適切ではない、および/または間違って適用されています。

あなたのアプリには未使用のナビゲーションコントローラがあります。一般的には、ナビゲータコントローラを使用しますが、最初のビューコントローラとしてマークし、現在の初期ビューコントローラをnavコントローラのルートビューコントローラにする必要があります。

これを取得したら、巻き戻しセグを調べるか、少しコードを使用する必要があります。現時点では常に新しいView Controllerインスタンスを表示しているだけで、決して元に戻りません。これが問題の原因となります。新しいメニューを表示するのではなく、ゲームシーンからメニューに戻す必要があります。

これは、トップコントローラをそのスタックからポップするようにnavコントローラに指示することでコードで行うこともできます。

+0

Hmmmを作成しているかどうかを確認してください。私はこれを考慮した点がありましたが、当時は当然のようには聞こえませんでしたが、私は自分のプロセスフローを見ているので、単純なプッシュ/ポップのゲームビューコントローラが私のために働くはずです。私はそれの実装を試し、私が働くことができるものを見てみましょう。 – Austin

+0

おそらく私は正しく使用していませんが、gameViewController内から 'self.navigationController?.popViewControllerAnimated(false)'を呼び出すと、ゲームビューやmenuViewControllerへの遷移は削除されませんでした。何も起こらなかった。 – Austin

+0

あなたのコントローラが実際にナビゲーションコントローラにないことを示唆している... – Wain

関連する問題