1.多VC之间的切换

(多个界面之间的切换)
方式一
两个普通的控制器之间的推出和返回
推出时:使用控制器的 presentViewController 方法, 指定要推出的是谁
返回时:使用控制器的 dismissViewController 方法, 不用指定返回到哪,系统记录着,所以从哪里来的就会返回到哪里去

方式二
使用UINavigationController 导航控制器管理它下面的子控制器,由这个管理者负责控制推出显示的新VC,以及返回到前面的VC
推出新的控制器 使用导航控制器的 pushViewController 方法
返回前面的控制器 使用导航控制器的 popViewController 方法

//创建一个导航控制器UINavigationController *navi = [[UINavigationController alloc]initWithRootViewController:[[MyViewController alloc]init]];//设置导航控制器 为 window 的rootViewControllerself.window.rootViewController = navi;[self.window makeKeyAndVisible];
MyViewController2 *myVc2 = [[MyViewController2 alloc]init];//navigationController 该属性可以获取到管理当前控制器的导航控制器实例[self.navigationController pushViewController:myVc2 animated:YES];

2.UINavigationController 导航控制器

配置导航栏 (NavigationBar)
高度:算上状态栏 (Status Bar 本身高20个点) 高64个点
内容:通过navigationItem属性完成配置
中:title/titleView
左:leftBarButtonItem/s
右:rightBarButtonItem/s

//隐藏底部 toolBarself.navigationController.toolbarHidden = YES;
//创建一个的 barButtonItem 要求 是 设置titleUIBarButtonItem *rightItem1 = [[UIBarButtonItem alloc]initWithTitle:@"按键" style:UIBarButtonItemStylePlain target:self action:@selector(click:)];//创建一个的 barButtonItem 要求 是系统的 Add 样式UIBarButtonItem *rightItem2 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil];//    self.navigationItem.rightBarButtonItem =  rightItem1;self.navigationItem.rightBarButtonItems = @[rightItem1,rightItem2];//创建一个不受tintColor影响的图片UIImage *leftImage = [[UIImage imageNamed:@"lxh_xiaohaha"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];UIBarButtonItem *leftItem1 = [[UIBarButtonItem alloc]initWithImage:leftImage  style:UIBarButtonItemStylePlain target:nil action:nil];self.navigationItem.leftBarButtonItem = leftItem1;self.navigationItem.title = @"标题";//中间 红色的view 高 40 宽 100 背景红色UIView *redView = [self crearView:CGRectMake(0, 0, 100, 40) andBackGroundColor:[UIColor redColor]];//子view 1  高 距离父view上下2 宽45 距离父view左边5 背景 绿色UIView *greenView = [self crearView:CGRectMake(5, 2, 45, 36) andBackGroundColor:[UIColor greenColor]];//子view 2  高 距离父view上下2 宽45 距离父view右边5 背景 蓝色UIView *blueView = [self crearView:CGRectMake(50, 2, 45, 36) andBackGroundColor:[UIColor blueColor]];[redView addSubview:greenView];[redView addSubview:blueView];
//    self.navigationItem.titleView = redView;//navigationItem 的设置 只在当前VC中生效//navigationBar 的设置 在当前导航控制器下的所有VC中都生效//设置导航栏的背景
//    self.navigationController.navigationBar.barTintColor = [UIColor redColor];//设置 左 右 item 的颜色self.navigationController.navigationBar.tintColor = [UIColor blackColor];//设置导航的样式
//    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;//换掉前面半透明的图片[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"image64"] forBarMetrics:UIBarMetricsDefault];//设置工具栏//把工具栏显示出来  默认是隐藏self.navigationController.toolbarHidden = NO;UIBarButtonItem *toolBarItem1 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:nil action:nil];UIBarButtonItem *toolBarItem2 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:nil action:nil];UIBarButtonItem *toolBarItem3 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil];//创建木棍特效UIBarButtonItem *fixItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];fixItem.width = 50;//弹簧特效UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];self.toolbarItems = @[toolBarItem1,fixItem,toolBarItem2,flexibleItem,toolBarItem3,fixItem];

3.UIImageView 图片视图

UIImage (存图片) —> UIImageView(显示图片的视图)
核心属性 image

//创建图片视图 通过该初始化方法创建 图片视图,如果不设置frame,就是用使用图片本身的宽高,做为imageView的frame的宽高
//    UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"abc"]];
//    imageView.frame = CGRectMake(50, 200, 200, 200);UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 200, 300, 200)];imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"abc%ld",self.imageIndex]];imageView.backgroundColor = [UIColor greenColor];/*UIViewContentModeScaleToFill, 默认 缩放填充慢 会变形UIViewContentModeScaleAspectFit,  不会变形 全部显示图片  imageView可能会留白UIViewContentModeScaleAspectFill, 不会变形,imageView不会留白  图片可能会显示不全*/imageView.contentMode = UIViewContentModeScaleAspectFill;//第三种 必须配合 切割使用imageView.clipsToBounds = YES;imageView.tag = IMAGE_TAG;[self.view addSubview:imageView];

思考练习

OC-UINavigationController 导航控制器相关推荐

  1. UINavigationController导航控制器详解

    1.UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到. 我们看看它的如何使用: 下面的图显示了导航控 ...

  2. UINavigationController导航控制器(一)

    导航控制器 UINavigationController 导航控制器,用来管理子控制器 其包含:UINavigationBar 导航条 管理原则:push进如导航控制器,为栈顶控制器,栈顶控制器的Vi ...

  3. UINavigationController 导航控制器

    今天讲了导航控制器UINavigationController 和标签栏视图控制器UITabBarController 先来说一说导航视图控制器  UINavigationController 导航控 ...

  4. iOS开发UINavigation系列四——导航控制器UINavigationController

    iOS开发UINavigation系列四--导航控制器UINavigationController 一.引言 在前面的博客中,我么你介绍了UINavigationBar,UINavigationIte ...

  5. Iphone开发用导航控制器实现视图的分层切换(UINavigationController)

    Iphone和android手机的一个不同的地方是,大部分的android手机都有返回键,而Iphone只有一个home键,所以我们会发现在Iphone的大部分应用中会在顶部有一个导航条,比如系统的设 ...

  6. iOS导航控制器——UINavigationController使用详解

    一.概述 UINavigationController用来管理视图控制器,在多视图控制器中常用.它以栈的形式管理视图控制器,管理视图控制器个数理论上不受限制(实际受内存限制),push和pop方法来弹 ...

  7. 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值...

    实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...

  8. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  9. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记20 Multiple MVCs 多MVC模式、NavigationController导航控制器...

    上一话讲完了小人脸Demo,我们也了解了MVC,那么这一话我们来把Demo复杂化,看看多个MVC之间是如何协同工作的.回顾一下我们之前讲过的多个MVC的情况. IOS提供了一些控制器,它们的视图是其他 ...

最新文章

  1. input(position 1) must be Tensor, not NoneType
  2. U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言
  3. VTK:二次方用法实战
  4. 使用EF Oracle实现DevExpress绑定大数据的ServerMode模式
  5. java 德生读卡器对接程序_德生TSW-F4 社保卡读卡器.rar
  6. uni-app和php交互DES加密解密数据
  7. python编辑器安装视频教程_Python安装教程(推荐一款不错的Python编辑器)
  8. navision系统和sap区别_erp系统与sap的区别是什么?
  9. 计算机二级选择题40分,2017年计算机二级选择题及答案
  10. ROS2——南溪的ROS2使用手册
  11. 【必收藏】台大李宏毅老师课程 | 资源汇总、笔记总结与索引
  12. python基础教程第三版-Python基础教程(第三版)(七)再谈抽象
  13. python的模块导入问题_python的模块导入问题
  14. const VS readonly
  15. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据设置数据窗口的更新属性...
  16. 使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收
  17. Halcon 识别DataMatrix二维码
  18. 机器学习常用的六种分类方法,Python代码详细都在这里!
  19. Mybatis使用之分页
  20. 本地配置多个git账户(公司、GitHub)

热门文章

  1. Stable Diffusion 本地部署
  2. python求共轭复数_python中复数的共轭复数知识点总结
  3. 使用ascii码对字符串进行加密解密
  4. Ubuntu pinyin输入法(转)
  5. 发掘网红IP价值 微博、IMS联手启动Vstar战略
  6. idea maven java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
  7. ARM7 的中断寄存器的设置方法
  8. [绍棠] nuxt.js获取当前路由的名称和路径
  9. 计算机缺少xlive dll,win10专业版64位玩游戏提示计算机中缺少xlive.dll
  10. IE中js出现拒绝访问问题