ビュー内のフィールドを更新するようにビューコントローラを設定するには、ナビゲーションコントローラにプッシュされたフィールドのみを更新し、ナビゲーションコントローラビューからオブジェクトをポップします。ビューを強制的にロード/アンロードする
私の目標は、そのビューコントローラ用:それは、ナビゲーションコントローラのスタックからポップされたときに
- 更新表示は、それがナビゲーションコントローラのスタックにプッシュされている場合にのみ
- リリースデータ
- 再利用(xibファイルのロード/アンロードオーバーヘッドを排除するため)
viewWillBePushed:
との委任方法はありますか?
例
のは、私が望むの三層を持っているとしましょう:
Movies (MovieListController)
--> Movie Basic Info (MovieInfoController)
--> Movie Credits (MovieCreditsController)
たちは、各映画を表すクラスMovie
を持っていると仮定します。
ここでは、プログラムの実行時にそれぞれ1つずつ、3つのUIViewController
が必要です。だから私は別の映画のために同じMovieInfoController
を再利用することができ、同様にMovieCreditsController
です。
ただし、MovieInfoController
は、ビューフィールド(タイトル、リリース日など)をスタックにプッシュする場合にのみ更新することもお勧めします。ディスプレイをviewWillAppear
に実装すると、MovieCreditsController
がポップされてもフィールドが強制的に更新されます。
また、Movie
への参照がポップされたとき、および潜在的に大きなオブジェクト(表紙画像など)を公開したいとします。 viewWillDisappear
にこのロジックを実装すると、スタック上にMovieCreditsController
を押しているときにデータが解放されます。
妥当ですか?私は間違った方法でそれについて行くのですか?
これは実際に私が今やっていることですが、 'setMovie:nil'の代わりに' drainFieldsInfo'を呼び出す点が異なります。私はもっと良いものを望んでいた。しかし、ありがとう! – notnoop