1

私は、メモリコントローラの位置が<x1234>のViewControllerを作成し、インデックスに1回追加したとします。たとえば、ビューコントローラが複数回プッシュされる可能性のあるナビゲーションコントローラを作成しました。 7 ...メモリはどうですか?私はいつも同じオブジェクトを使用しているので、しばらくするとクラッシュするか、問題はありませんか?uinavigationコントローラスタックメモリ管理

答えて

0

1つのスタックに複数のビューコントローラを複数追加することはできません。しかし、複数のインスタンスを作成して(異なるメモリ位置にする)、それらをナビゲーションスタックにプッシュすることができます。もちろん、1000を超えるインスタンスを作成すると、アプリがクラッシュします。実際には、スタックには通常1〜10個のView Controllerが含まれており、すべて正常に動作します。

1

あなたはナビゲーションコントローラのスタックmore than once上に正確に同じオブジェクトをプッシュすることはできません:のViewController パラメータ内のオブジェクトは、ナビゲーションスタック上で、すでにこの方法であれば、

のiOS 2.2での重要な

以降 例外がスローされます。以前のバージョンのiOSでは、このメソッドは単純に何もしません。

同じビューコントローラの異なるインスタンスをプッシュできます。

iOSはメモリの警告(再作成可能な一時的な記憶領域を消去できます)を表示し、表示されていないビューをアンロードします。これは、新しいビューコントローラのオーバヘッドが比較的小さいが、ゼロでないことを意味する。 ですが、これ以上の制限はありますが、実際にはメモリ管理ルールに正しく従う限りかなり高いです。使用可能なUIを作成することによって課される制限よりも確かに高い。

+0

私はスタックの追跡をしたいと思います...コントローラーの配列ではない場合、どうすればこのことが起こりますか? –

+0

ビューコントローラはまだスタックにあります。それはそれに関連するビューをアンロードするだけです。 –

関連する問題