0

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 だけではないため、ナビゲーション コントローラーを使用していないことに注意してください。他にもいくつかあるでしょう。

4

1 に答える 1

0

ナビゲーション コントローラーに Main を埋め込むことで、問題がなくなり、必要なときにすべてのビュー コントローラーが非アクティブになります。他のコード変更は必要ありませんでした。

この結果は驚くべきものだと思います。ほとんどの (すべての?) ストーリーボード アプリケーションでナビゲーション コントローラーを使用する必要があることを示しているように思われます。

于 2015-06-08T19:12:58.543 に答える