Main、List、およびRunの3つのView Controllerがあります。(後でさらに追加されます。) 絵コンテとセグエを使用しています。対象OSはiOS8です。メインは初期シーン/コントローラーです。現在、ナビゲーションコントローラーは使用していません。
メインのボタンは、ショー セグエを介してリストを表示します。ユーザーの操作に応じて、List は unwind セグエを使用して Main に戻るか、プログラムで performSegueWithIdentifier を介して show セグエを使用して Run によってオーバーレイされる場合があります。ここまでは順調ですね。
List が Run にセグエされると、list は二度と使用されなくなります。Run は List に巻き戻されることはありません。
ユーザーが実行中の場合、アンワインド セグエが起動され、ユーザーはメインに戻ります。問題は、List が非アクティブ化されないことです。(Swift では、List.deinit() は呼び出されません。) List から Run へのセグエの前に、List へのすべてのポインター (デリゲートを含む) を nil にするように注意しています。List が Run を提示せずに Main に直接巻き戻される場合、List は本来あるべきように割り当て解除されます。
では、List-to-Run の後に Run-to-Main セグエが続き、List の割り当てが解除されるのを防ぐために、私は何をしているのでしょうか?
ナビゲーション バーは必要ないため (非表示にできることはわかっています)、Run にセグエできる VC は List だけではないため、ナビゲーション コントローラーを使用していないことに注意してください。他にもいくつかあるでしょう。