ios addChildViewController

来源:互联网 发布:越南第三军事强国知乎 编辑:程序博客网 时间:2024/04/30 14:57

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];    
复制代码
0 0
原创粉丝点击