美文网首页
- 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