Objective c句柄添加子视图控制器或从父视图中删除

时间:2016-09-20 12:21:09

标签: objective-c memory-management uiviewcontroller viewdidload dealloc

我对UIViewController有一个小问题。

在自定义UIViewController类中,是否可以使用

将控制器添加到当前视图控制器中
[self addChildViewController:customViewController];

或删除时

[customViewController removeFromParentViewController];

目前,我已经使用viewDidLoad和dealloc方法做了我想做的事情,但我想知道是否有更好的解决方案。

谢谢,

1 个答案:

答案 0 :(得分:1)

当视图控制器想要对添加到容器做出反应时,它可以覆盖此方法。

- (void)didMoveToParentViewController:(UIViewController *)parent;

通过Apple doc

  

如果要实现自己的容器视图控制器,则必须   调用子视图的didMoveToParentViewController:方法   转换到新控制器后的控制器完成或,   如果没有过渡,请立即拨打电话   addChildViewController:方法。

dealloc的相应性(无论如何不鼓励)是Apple doc

- (void)willMoveToParentViewController:(UIViewController *)parent;
  

如果要实现自己的容器视图控制器,则必须   调用子视图的willMoveToParentViewController:方法   控制器在调用removeFromParentViewController方法之前,   传递父值为nil。