zoukankan      html  css  js  c++  java
  • 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:^{
            
        }];
  • 相关阅读:
    观《逻辑思维,如何成为一个高手》
    第十八周 最后冲刺
    第十六周 个人项目开发流程
    个人作业
    第十四周个人总结
    排球比赛计分程序功能说明书
    Spring实战(1)
    java基础知识(三)
    JAVA中框架总结
    java基础知识(一)
  • 原文地址:https://www.cnblogs.com/liudongyan/p/4399288.html
Copyright © 2011-2022 走看看