我有1个视图控制器充当CustomViewContainer,它有2个子视图控制器,最初只在启动时添加了1个。
从子容器上的Container调用addChildViewController
,然后在子容器上随后调用didMoveToParentViewController
不会在屏幕上显示我的子视图。相反,我仍然看到父控制器的视图。
@implementation ContainerViewController // inherits from UIViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
LOG_METHOD_SIG();
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
{
// ChildViewController is a subclass of UIViewController
_childController = [[ChildViewController alloc] initWithNibName:nil bundle:nil];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self addChildViewController:_childController];
// Expected the following line to display the child controller's view
[_childController didMoveToParentViewController:self];
}
如果我在[self.view addSubview:_childController.view]
之后添加'addChildViewController'
,则会显示该视图。但我认为容器视图控制器的重点是避免直接操作。
如果您要添加第一个子视图控制器,可以调用'transitionFromViewController`,如果是,那么'from'视图控制器会是什么?
答案 0 :(得分:0)
addChildViewController
就是这样:它添加了一个子视图控制器。它的观点没有任何作用。 transitionFromViewController:toViewController:duration:options:animation:completion
(或其他......)是神奇发生的地方。你的fromViewController可能是你最初添加的视图控制器,toViewController是你的第二个视图控制器。