3

私はUINavigationControllerを使用して同じUIViewControllerの複数のインスタンスを処理するアプリケーションを開発しました。しかし、私が使用しているUIViewControllerは、時には非常に大きなUITableViewで多くのイメージをサーバーからロードして使用しているので、私はパフォーマンスとメモリをより良心的にし始めています。UINavigationControllerはどのように複数のUIViewControllerを追跡しますか?

スタックの一番上にないUIViewControllerはどうなりますか?いくつかのビューを掘り下げてみると、すべてが画像を持っています。ビューに戻るたびに、UINavigationControllerはロードせずにビューを表示するので、スタック上のビューが潜在的に多くの価値のあるものになっているのでしょうか?リソース?メモリなど?

この状況を処理する最善の方法は何ですか?私が明らかにそうでないことを知っておくべきことがありますか?

ありがとうございます!

答えて

0

実際これはiOSのドキュメントで説明されています。 XCode>オーガナイザ>ドキュメント> iOSをチェックしてください。UINavigationControllerスタックがどのように機能するかを説明する素敵な図があり、それは単語より優れているはずです。

しかし、一言で言えば、あなたの恐怖を緩和するのに役立つviewDidLoadとviewWillAppear(およびその反対の)メソッドがあります。それらは、あなたが "今すぐ"必要としないコードの "メモリホギング"部分を作成/削除するために使用する必要があります。しかし、私が知る限り、UINavigationControllerによって直接制御されていれば、フラッシュするのに必要なiOSの決定を制御することはできません。

関連する問題