基本的な考えとして、なるべくグローバルに保持するのはやめた方がよいと思います。
たくさんViewControllerがあったとしても、各ViewControllerは、親のViewControllerから呼び出され、終わったらまた親ViewControllerに戻る親子関係があるはずです。
タブ画面のように複数のViewControllerが並行して存在する場合でも、その並行ViewControllerの共通の親となるUITabViewControllerがいます。
なので、基本的には呼び出し元の親ViewControllerが子供のViewControllerを管理すべきだと思います。
そうすることで、無駄にViewControllerを保持せず、必要な時に確保して不要になったらすぐ解放することができ、メモリ使用を最適化できます。プログラムが大きくなればなるほど、そのグローバル化の悪影響は大きくなります。
また、たくさんのViewControllerをグルーピングして管理したい場合、UINavigationControllerを使う必要はありません。グルーピングしたいUIViewControllerのインスタンスを配列(NSArray)で保持すればよいだけです。それを順番に表示したりナビゲーションバーを使って画面を行き来したいならUINavigationControllerを使えばよいですが、そうでないなら、単純にNSArrayに保持し、その中から必要なViewControllerを選択して表示すればよいだけです。そして、そのNSArrayはグローバルでなく表示元の親ViewControllerに保持すればよいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/18 07:26 編集