2012-01-25 10 views
1

モーダルセグを使用して、1つのビューコントローラから別のビューコントローラに移行します。UINavigationControllerこのビューコントローラ(およびその子ビューコントローラ)がメモリ内にとどまり、特定の参照が保持されることは重要です。明らかにこれは起こっていません。 viewWillAppear関数をデバッグするとき、rootViewController(viewControllers [0])の参照は呼び出し間で異なるメモリアドレスを指します(実際の問​​題はゼロの値を含みます)。この問題を引き起こす可能性 今そこに二つの可能性:モーダルセグは新しいオブジェクトを作成しますか?

  • UiNavigationControllerは
  • rootViewControllerが

を破壊なったが、それは本当に混乱させるために、それらのどれも起こらなかったが破壊されたとなりました。 UINavigationControllerもrootViewControllerも破壊されませんでした(viewDidUnloadは呼び出されませんでした)。

編集:さらに調査したところ、すべてのモーダルセグのUINavigationControllerが実際に再作成されていました。私は不動産を維持することによって問題を解決できることを願っています。

答えて

0

私は最終的にコントローラを手動で表示する独自のIBAction関数を作成しました。これは正常に動作し、5分未満でコード化されます。ストーリーボードからViewDidLoadでコントローラーを一度起動するだけです。

0

メインビューコントローラで強力な参照を作成し、新しいビューコントローラをそのプロパティにポイントします。これは必要なだけ長くビューを保持しますが、n個のビューでは推奨されませんが、独自のビューの作成と削除を処理するnavコントローラの目的を奪います。

関連する問題