アプリでメモリの警告が表示されるので、これに気付きました。ナビゲーション コントローラーとそのルート ビュー コントローラーがあります。このルート ビュー コントローラーから、別のビュー コントローラーを呼び出してナビゲーション スタックにプッシュします。
[self performSegueWithIdentifier:sender:]
セグエは、ルート ビュー コントローラから新しいビュー コントローラへのモード PUSH です。
次に、このView Controllerを削除し、呼び出してルートView Controllerに戻ります
[self.navigationController popViewControllerAnimated:YES];
問題は、View Controller を約 20 回プッシュ アンド ポップすると、メモリ警告が表示されるようになることです。
didRecieveMemoryWarning は、1 つのフレームでビュー コントローラー上で約 20 回呼び出され、ポップされたすべてのビュー コントローラーがまだぶら下がっていることを示します。
その後、アプリは最終的にクラッシュします。
プッシュされたView Controllerへの参照がどこにも保存されていません。
私はios6を使用しているので、viewDidUnload()が呼び出されないことを知っています。
メモリの警告が表示されたら、キャッシュされたすべての画像を削除していますが、理想的には、ポップされた古いビュー コントローラーを破棄することですが、ストーリーボードを使用してこれを行う方法がわかりません。
コードから手動で pushViewController を呼び出していた場合、毎回再利用する単一のオブジェクト参照を維持できるため、プッシュする新しいビュー コントローラーを作成し続けることはありませんが、ストーリーボードから一歩離れています。
この問題に関するヘルプは大歓迎です。
ありがとう、スチュワート。