addChildViewController を呼び出した後に addSubview を呼び出す必要がありますか? 質問する

addChildViewController を呼び出した後に addSubview を呼び出す必要がありますか? 質問する

iOS5およびのような新しいメソッドを使用して、コンテナ ビュー コントローラを作成しようとしていますaddChildViewController

addSubview電話した後で電話しないといけないんですかaddChildViewController

removeFromSuperview電話する前に電話しなければなりませんかremoveChildViewController?

Apple のドキュメントにはこれについて何も記載されていません。どう思いますか?

ベストアンサー1

1) addChildViewController を呼び出した後に addSubview を呼び出す必要がありますか?

はい

2) removeChildViewController を呼び出す前に、removeFromSuperview を呼び出す必要がありますか?

全然違う

removeFromParentViewController:代わりに電話するべきです。removeChildViewController:また電話するべきです。willMoveToParentViewController:

追加/削除については、この優れたカテゴリを参照してください。

UIViewController + コンテナ

- (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];

}

developer.apple.com の公式リソース

おすすめ記事