美文网首页
- addChildViewController

- addChildViewController

作者: 三岁就很乖 | 来源:发表于2016-04-06 15:47 被阅读170次

View Controller中可以添加多个sub view,在需要的时候显示出来;

可以通过viewController(parent)中可以添加多个child viewController;来控制页面中的sub view,降低代码耦合度;

通过切换,可以显示不同的view;,替代之前的addSubView的管理

//在parent view controller 中添加 child view controller

FirstViewController *firstViewController=[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];

[self addChildViewController:firstViewController];

SecondViewController *secondViewController=[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];

[self addChildViewController:secondViewController];

ThirdViewController *thirdViewController=[[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];

[self addChildViewController:thirdViewController];

[self.view  addSubview:thirdViewController.view];

// addChildViewController回调用[child willMoveToParentViewController:self] ,但是不会调用didMoveToParentViewController,所以需要显示调用

[thirdViewController didMoveToParentViewController:self];

currentViewController=thirdViewController;

//切换child view controller

[self transitionFromViewController:currentViewController toViewController:firstViewController duration:4 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{

}  completion:^(BOOL finished) {

//......

}];

currentViewController=firstViewController;

//移除child view controller

// removeFromParentViewController在移除child前不会调用[self willMoveToParentViewController:nil] ,所以需要显示调用

[currentViewController willMoveToParentViewController:nil];

[currentViewController removeFromSuperview];

[currentViewController removeFromParentViewController];

相关文章

网友评论

      本文标题:- addChildViewController

      本文链接:https://www.haomeiwen.com/subject/dhtmlttx.html