説明してください、なぜ私はaddChildViewController:
メソッドを使用する必要がありますか?
結局のところ、私がサブビューをビューに配置すると[some_obj.view addSubview:some_view]
、これらのサブビューは彼のコントローラーについて知っています。
ありがとう。
説明してください、なぜ私はaddChildViewController:
メソッドを使用する必要がありますか?
結局のところ、私がサブビューをビューに配置すると[some_obj.view addSubview:some_view]
、これらのサブビューは彼のコントローラーについて知っています。
ありがとう。
addChildViewController
呼び出す必要があります。これは、親コントローラーが有効期間/バックグラウンド管理のために子ビューコントローラーへの参照を保持する必要があるためです...この参照は、サブビューとして追加された場合、UIView から取得できない/取得すべきではありません
また、子から親を参照することもできますself.parentViewController
アップルは次のように述べていますaddChildViewController
指定されたView Controllerを子として追加します。新しい子View ControllerがすでにコンテナView Controllerの子である場合、追加される前にそのコンテナから削除されます。このメソッドは、カスタム コンテナ ビュー コントローラの実装によってのみ呼び出されることを意図しています。このメソッドをオーバーライドする場合は、実装で super を呼び出す必要があります。
追加/削除については、この優れたカテゴリを参照でき、いつ呼び出すかを心配する必要はありません:
- (void)containerAddChildViewController:(UIViewController *)childViewController {
[self addChildViewController:childViewController];
[self.view addSubview:childViewController.view];
[childViewController didMoveToParentViewController:self];
}
- (void)containerRemoveChildViewController:(UIViewController *)childViewController {
[childViewController willMoveToParentViewController:nil];
[childViewController.view removeFromSuperview];
[childViewController removeFromParentViewController];
}