该-viewWillApear
方法是合理的,但是当视图即将插入视图层次结构时会调用它,这可能是也可能不是您想要的。
如果您想要更多地控制推/拉进度,您可以覆盖
- (void)willMoveToParentViewController:(UIViewController *)parent {
if (nil == parent) {
// Moving to nil parent means being removed from parent
} else {
// Will be inserted as a child view controller of <parent>
}
}
- (void)didMoveToParentViewController:(UIViewController *)parent {
if (nil == parent) {
// Moving to nil parent means was just removed from parent
} else {
// Was just inserted as a child view controller of <parent>
}
}
这些将在导航控制器推送/弹出子视图控制器之前和之后调用。
从文档...
didMoveToParentViewController:
在从容器视图控制器中添加或删除视图控制器后调用。
- (void)didMoveToParentViewController:(UIViewController *)parent
参数
父母
父视图控制器,如果没有父视图控制器,则为 nil。
讨论
当您的视图控制器想要对添加到容器中做出反应时,它可以覆盖此方法。
和...
willMoveToParentViewController:
在从容器视图控制器中添加或删除视图控制器之前调用。
- (void)willMoveToParentViewController:(UIViewController *)parent
参数
父母
父视图控制器,如果没有父视图控制器,则为 nil。
讨论
当您的视图控制器需要知道它已被添加到容器中时,它可以覆盖此方法。