只要你打电话addChildViewController:
,你现在就是一个视图控制器容器实现者。这意味着您必须比标准的演示电话(如presentViewController..
. 这包括处理您添加为子项的控制器的视图框架,正如您的问题所暗示的那样,您可能已经预料到了。
例如,要实现一个超级基本的示例容器,它只显示每个孩子全屏,你可以做这样的事情。
-(void)swapChildVCFrom:(UIViewController *)from to:(UIViewController *)to{
[self addChildViewController:to];
[from willMoveToParentViewController:nil];
// Adjust the new child view controller's view's frame
// For example here just set it to fill the parent view
to.view.frame = self.view.bounds;
[self transitionFromViewController:from
toViewController:to
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:^(BOOL b){
[to didMoveToParentViewController:self];
[from.view removeFromSuperview];
[from removeFromParentViewController];
}];
}