• IOS笔记 : addChildViewController


    一下addChildViewController,一个ViewController可以添加多个子ViewController,但是这 些子ViewController只有一个是显示到父视图中的,可以通过transitionFromViewController:toViewController:duration:options:animations:completion:这个方法转换显示的子视图。同时加入相应的动画。

     //在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];
    

      

  • 相关阅读:
    java: java学习路线图(Java全栈知识体系: https://www.pdai.tech/ )
    Java: split() 将“字符串”分割为若干个独立的“字符”
    java: 批量添加文件xx.jar到环境变量CLASSPATH中(linuxosshell脚本)
    lvs 详解
    TS类
    TS接口
    TS类型
    Azure DevOps (七) 通过SSH部署上传到服务器的应用
    Azure DevOps (九) 通过流水线推送镜像到Registry
    Azure DevOps (十) 通过流水线完成Docker镜像的部署
  • 原文地址:https://www.cnblogs.com/lgphp/p/4082781.html
Copyright © 2020-2023  润新知