私はiOS開発で新しくなっていますが、私はObj-Cのメモリ管理の基本に精通しています。しかし、カスタムUIViewControllerに関するAppleのドキュメントは私を少し混乱させました。カスタムUIViewControllerでのメモリ管理
したがって、私はEntryViewController
オブジェクトの配列を格納するPagingController
を持っています。 (これらはすべてUIViewControllerです。)これらのオブジェクトは動的にロードされ、もちろん必要に応じて解放されます。ドキュメントが述べたとおり、PagingController
のビューは-loadView
に作成され、self.view
に格納されます。
EntryViewController
(ctrl
)をロードするときはいつでも[self.view addSubview:ctrl.view];
に電話します。ターゲットOSが3.0でプライベート変数(_parentViewController
)を変更したくないので、ctrl.parent = self;
に電話する必要があります。 (parent
は@property(assign) PagingController *parent;
のように定義される)ここで
私の質問は以下のとおりです。
- 私は自分自身を
self.view
を解放する必要がある、またはのUIViewControllerは、そのの世話をされていますか? parent
(プロパティはEntryViewController
)を保持する必要がありますか?親がアンロードされると、すべての子ビューコントローラが解放されているので、無意味だと思います。-dealloc
メソッドの[self.view removeFromSuperview]
をEntryViewController
と呼ぶ必要がありますか?ドキュメントでは、すべてのサブビューを管理する必要があるので、これが自動的に呼び出されるかどうかはわかりません。
最初はカスタムビューコントローラを作成する方法を混乱させましたか?
ターゲット3.0?本当に? – jrturton
この質問の正解を教えてください。私もそれを知りたいと思っています – Krrish
@jrturton実際には3.2ですが、私の主張は '-addChildViewController'は5.0以降しか利用できません。私は4.xユーザーを除外したくありません。 – vbwx