• UINavigationController


    //导航控制器(三种方式切换):(特殊的视图控制器,能够通过栈的方式来管理多个视图控制器)
    RootViewController *root = [[RootViewController alloc] init];
    //创建一个导航控制器:(特殊的视图控制器,能够通过栈的方式来管理多个视图控制器)
    //每次创建导航控制器时,需要给它指定一个根视图控制器,根视图控制器会第一个被加到导航控制器的栈容器中
    //可以理解为:nav为父控制器,root为子控制器
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];
    self.window.rootViewController = nav;
    
    /********************方法:导航控制器对sub执行入栈*******************************/
    SubViewController *sub = [[SubViewController alloc] init];
    //视图控制器通过此get方法能够拿到管理它的导航控制器
    //导航控制器对sub执行入栈操作,(将sub加到导航控制器的栈容器中)
    [self.navigationController pushViewController:sub animated:YES];
    //设置标题
    self.navigationItem.title = @"sub";
    //iOS7之后 self.view 为clearColor时,切换的时候会卡顿
    self.view.backgroundColor = [UIColor blueColor];
    //pop//导航控制器对sub执行出栈操作,回到上级界面
    //Animated 是否有动画效果
    //对栈顶(栈中最上层)元素执行出栈操作
    [self.navigationController popViewControllerAnimated:YES];
    //直接通过导航控制器回到根视图控制器
    [self.navigationController popToRootViewControllerAnimated:YES];
    //回到sub界面
    //SubViewController *sub = [[SubViewController alloc] init];
    //1、popToViewController: 要跳转到的vc对象,必须在导航控制器的栈中
    //2、所有vc对象,都放在了导航控制器的viewControllers数组中
    //self.navigationController.childViewControllers
    [self.navigationController popToViewController:    self.navigationController.viewControllers[1] animated:YES];
    
    
    /*************方式:最基本视图切换************/
        [self.view addSubview:_sub.view];
        //childViewControllers 管理多个子控制器的数组
        ThirdViewController *third = (ThirdViewController *)self.childViewControllers[0];
        [self.view addSubview:third.view];
        
        
     /*************方式:通过模态化的方式,呈现sub的view************/   
        SubViewController *sub = [[SubViewController alloc] init];
        //通过模态化的方式,呈现sub的view:实际上的操作是将root的view从window上移除,将sub的view添加到window上
        //设置视图的切换方式
        sub.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        [self presentViewController:sub animated:YES completion:^{}];
        //回到root (会自动将sub的view移除,将root的view重新加回来)
        [self dismissViewControllerAnimated:YES completion:^{
            
        }];
  • 相关阅读:
    信息和熵
    【算法】欧几里得算法与青蛙约会oj
    【算法】并查集模板与练习
    Kaggle-房价预测
    【pytorch】pytorch-backward()的理解
    【pytorch】pytorch-LSTM
    【计算机网络】数据链路层总结
    【Code】numpy、pytorch实现全连接神经网络
    【MT】牛津的MT教程
    【计算机网络】物理层基础知识
  • 原文地址:https://www.cnblogs.com/liudongyan/p/4399288.html
Copyright © 2020-2023  润新知