1つ前に戻る場合は、self.dismissViewControllerAnimated(true, completion: nil) で、その閉じた画面は deinit されるのですが、又は2つ前に戻る場合も、deinit されるのですが、 self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil) 画面遷移が処理によってまちまちの場合など、対象の view から移動した時に必要に応じて、画面を移動し、指定した画面のインスタンスを破棄することはできないものでしょうか?

初歩的な質問で申し訳ございませんが、 Swift のプログラム開発(スマホアプリ)をはじめて2週間ほどの素人です

どなたか教えていただければと思います。

状況は下記のような画面遷移の場合で、画面4(失敗画面)から画面2へ戻る時に
画面2のインスタンスを破棄し新たに、初期処理を実行したいと思っております。
—————————————————————————————————————
画面1(スタート画面)→画面2(メイン画面)┠→画面3(成功画面)
                      ┠→画面4(失敗画面)
—————————————————————————————————————

画面4にはボタンが”はい” と ”いいえ”があり
”はい”が選択された場合は、画面2へ
”いいえ”が選択された場合は、画面1へそれぞれ移行したいのですが

//”はい”を選択時下記コードを実行すると
self.dismissViewControllerAnimated(true, completion: nil)
//画面4のインスタンスを破棄して画面2に戻ると当然前回の内容のまま
//viewDidLoad を実行せずに画面2に戻ってしまうのですが、
//画面2から失敗画面に遷移するタイミングで、画面2のインスタンスを解放できないものでしょうか?
//また画面2へ移行するタイミングで画面の内容を初期化したいのですが

//“いいえ”を選択時下記コードを実行
//画面4のインスタンスを破棄後画面1へ戻る(画面4、画面2とも deinit されているようです)
self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)