例えば:
- 「nib-v1」を使用して、initWithNibNameを使用して新しいUIVCを作成します
- たとえば、[(UINavigationController)nav pushViewController:myVC]を使用して表示します。
- myVCが使用しているNIBを「nib-v2」に変更します
私が見る限り、これは、表示される情報に2つのわずかに異なるUI画面が必要な情報をページングする場合に、多くのアプリのアプリ設計に対する「正しい」アプローチです。
たとえば、ほとんどのページはテキストですが、一部のページにも画像があります(RSSリーダーの場合、一部のRSSエントリにはテキストと画像があり、一部はテキストのみです)。
これまでは、1つのNIBファイルに2つ目の非表示の名前付きUIViewインスタンスを追加し、最初のファイルの上に重ねて、コンテキストに応じて「非表示」フラグを使用してオン/オフを切り替えました。
しかし、これは明らかに間違っており、メモリを浪費します。
ただし、NIBファイルからビューを「再ロード」する明確な方法がわかりません。initWithNibNameの魔法をなんとか再現したいと思いますか?
これは可能だと思いますが、「間違った方法」で実行すると、アプリがひどくクラッシュするだけだと確信しています。