OC-UINavigationController 导航控制器
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 导航控制器相关推荐
- UINavigationController导航控制器详解
1.UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到. 我们看看它的如何使用: 下面的图显示了导航控 ...
- UINavigationController导航控制器(一)
导航控制器 UINavigationController 导航控制器,用来管理子控制器 其包含:UINavigationBar 导航条 管理原则:push进如导航控制器,为栈顶控制器,栈顶控制器的Vi ...
- UINavigationController 导航控制器
今天讲了导航控制器UINavigationController 和标签栏视图控制器UITabBarController 先来说一说导航视图控制器 UINavigationController 导航控 ...
- iOS开发UINavigation系列四——导航控制器UINavigationController
iOS开发UINavigation系列四--导航控制器UINavigationController 一.引言 在前面的博客中,我么你介绍了UINavigationBar,UINavigationIte ...
- Iphone开发用导航控制器实现视图的分层切换(UINavigationController)
Iphone和android手机的一个不同的地方是,大部分的android手机都有返回键,而Iphone只有一个home键,所以我们会发现在Iphone的大部分应用中会在顶部有一个导航条,比如系统的设 ...
- iOS导航控制器——UINavigationController使用详解
一.概述 UINavigationController用来管理视图控制器,在多视图控制器中常用.它以栈的形式管理视图控制器,管理视图控制器个数理论上不受限制(实际受内存限制),push和pop方法来弹 ...
- 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值...
实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...
- iOS开发UI篇—多控制器和导航控制器简单介绍
iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记20 Multiple MVCs 多MVC模式、NavigationController导航控制器...
上一话讲完了小人脸Demo,我们也了解了MVC,那么这一话我们来把Demo复杂化,看看多个MVC之间是如何协同工作的.回顾一下我们之前讲过的多个MVC的情况. IOS提供了一些控制器,它们的视图是其他 ...
最新文章
- input(position 1) must be Tensor, not NoneType
- U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言
- VTK:二次方用法实战
- 使用EF Oracle实现DevExpress绑定大数据的ServerMode模式
- java 德生读卡器对接程序_德生TSW-F4 社保卡读卡器.rar
- uni-app和php交互DES加密解密数据
- python编辑器安装视频教程_Python安装教程(推荐一款不错的Python编辑器)
- navision系统和sap区别_erp系统与sap的区别是什么?
- 计算机二级选择题40分,2017年计算机二级选择题及答案
- ROS2——南溪的ROS2使用手册
- 【必收藏】台大李宏毅老师课程 | 资源汇总、笔记总结与索引
- python基础教程第三版-Python基础教程(第三版)(七)再谈抽象
- python的模块导入问题_python的模块导入问题
- const VS readonly
- pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据设置数据窗口的更新属性...
- 使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收
- Halcon 识别DataMatrix二维码
- 机器学习常用的六种分类方法,Python代码详细都在这里!
- Mybatis使用之分页
- 本地配置多个git账户(公司、GitHub)
热门文章
- Stable Diffusion 本地部署
- python求共轭复数_python中复数的共轭复数知识点总结
- 使用ascii码对字符串进行加密解密
- Ubuntu pinyin输入法(转)
- 发掘网红IP价值 微博、IMS联手启动Vstar战略
- idea maven java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
- ARM7 的中断寄存器的设置方法
- [绍棠] nuxt.js获取当前路由的名称和路径
- 计算机缺少xlive dll,win10专业版64位玩游戏提示计算机中缺少xlive.dll
- IE中js出现拒绝访问问题