UI基础:UINavigationController、界面通信
UINavigationControlle
UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,它用来管理多个视图控制器。也称为多视图控制器。
导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的控制器。
创建:
UINavigationController继承于UIViewController,以栈的形式管理所 控制的视图控制器,至少要有1个被管理的视图控制器,这个控制器 我们称作,导航控制器的根视图控制器。 任何继承于UIViewController的类(多态)都可以作为根控制器。
工作原理:
UINavigationController通过栈的形式管理控制器的切换,控制入栈和出栈 来展示各个视图控制器。
UINavigationController的ContentView始终显示栈顶控制器的view。 viewControllers属性存储了栈中的所有被管理的控制器
navigationController属性,父类中的属性,每个在栈中的控制器,都能通 过此属性,获取自己所在的UINavigationController对象。
入栈和出栈
pushViewController:animated //进如下一个视图控制器
popViewControllerAnimated: //返回上一个视图控制器
popToViewController:animated //返回到指定的视图控制器
popToRootViewControllerAnimated //返回到根视图控制器
UINavigationControlle常用属性:
viewControllers //所有处于栈中的控制器
topViewController //位于栈顶的控制器
visibleViewController //当前正在显示的控制器
navigationBar //导航条
定制UINavigationBar
navigationBar—导航条,iOS7之后默认是透明的,iOS7之前默认是不 透明的。
navigationBar在透明情况,与contentView会重合一部分区域。 navigationBar在不透明情况,contentView跟在navigationBar的下面。
navigationBar竖屏下默认高度44,横屏下默认高度32.
自定义navigationBar
barTintColor //设置导航条的颜色
setBackgroundImage:forBarMetrics: //导航条加背景图片
管理UINavigationItem
UINavigationBar除了能定义自身的样式外,还管理一组 UINavigationItem。
与UINavigationController相似,UINavigationBar也是以栈的形式管 理一组UINavigationItem。提供push和pop操作item。
每个视图控制器都有一个navigationItem属性。navigationItem中设 置的左按钮、右按钮、标题等,会随着控制器的显示,也显示到 navigationBar上
UINavigationItem
UINavigationItem属于MVC中的M。封装了要显示在UINavigationBar上 的数据。
title //标题
titleView //标题视图
leftBarButtonItem //左按钮
rightBarButtonItem //右按钮
UIBarButtonItem
UIBarButtonItem属于MVC的M。定义了UINavigationItem上按钮的触 发事件,外观等
-initWithBarButtonSystemItem:target:action:
-initWithTitle:style:target:action:
-initWithImage:style:target:action:
tintColor
界面间传值
属性传值
代理传值
UINavigationController以栈的形式管理视图控制器。
通过push和pop 控制跳转 UINavigationBar管理一组UINavigationItem,UINavigationItem包含了 UIBarButtonItem。
使用属性传值解决从前往后传值的问题
使用delegate解决从后往前传值的问题
UI基础:UINavigationController、界面通信的更多相关文章
- UI基础 - UINavigationController
如果导航控制器的BarButtonItem属性是一致的,可以重写initialize方法用来设置主题 //再ViewDidload执行前只执行一次 +(void)initialize { //创建的U ...
- 转发-UI基础教程 – 原生App切图的那些事儿
UI基础教程 – 原生App切图的那些事儿 转发:http://www.shejidaren.com/app-ui-cut-and-slice.html 移动APP切图是UI设计必须学会的一项技能,切 ...
- Android UI基础之五大布局
Android UI基础之五大布局 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Andro ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- 新建线程与UI线程间的通信
现在用一个实例来演示一下自己的新建线程与UI线程间的通信. UI界面包含3个控件: 一个输入框,用来输入数字: 一个显示框,用来显示从2开始,到输入数字之间的所有质数: 一个按钮,点击后获取输入框输入 ...
- UI基础UIWindow、UIView
UI基础UIWindow.UIView 在PC中,应用程序多是使用视窗的形式显示内容,手机应用也不例外,手机应用中要在屏幕上显示内容首先要创建一个窗口承载内容,iOS应用中使用UIWindow.UIV ...
- Android 的UI基础布局的学习
一. 今天学习了Android 的UI基础布局的部分,绝大多数的布局都在Androidstudio的这个界面里,如下: 在左边的框里的palette的内部,包含了的大多数的布局所要用的button按钮 ...
- JAVASE02-Unit010: 多线程基础 、 TCP通信
多线程基础 . TCP通信 * 当一个方法被synchronized修饰后,那么 * 该方法称为同步方法,即:多个线程不能同时 * 进入到方法内部执行. package day10; /** * 当多 ...
- TCP/IP基础概念及通信过程举例
TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...
- 免费素材:25套免费的 Web UI 设计的界面元素(转)
Web 元素是任何网站相关项目都需要的,质量和良好设计的元素对于设计师来说就像宝贝一样.如果您正在为您的网站,博客,Web 应用程序或移动应用程序寻找完美设计的网页元素,那么下面这个列表会是你需要的. ...
随机推荐
- 机器学习-数据可视化神器matplotlib学习之路(四)
今天画一下3D图像,首先的另外引用一个包 from mpl_toolkits.mplot3d import Axes3D,接下来画一个球体,首先来看看球体的参数方程吧 (0≤θ≤2π,0≤φ≤π) 然 ...
- 使Apache支持PHP
1.用记事本打开Apache安装目录下conf文件夹中的httpd.conf文件,找到LoadModule部分的配置代码,在该部分添加下面的代码,将PHP模块加载到Apache服务中,使得Apache ...
- spoj TBATTLE 质因数分解+二分
题目链接:点击传送 TBATTLE - Thor vs Frost Giants #number-theory #sliding-window-1 Thor is caught up in a fie ...
- python 同步与异步性能区别
import gevent def task(pid): """ Some non-deterministic task """ geven ...
- MongoDB(课时24 全文索引)
3.6.3 全文索引 在一些信息管理平台上经常需要进行信息模糊查询,最早的时候是利用了某个字段上实现的模糊查询,但这个时候返回的信息并不会很准确,因为只能够查A字段或B字段,而在MongoDB里面实现 ...
- [osg]osg自定义事件的理解
参考:http://blog.csdn.net/l_andy/article/details/51058907 添加自定义事件 首先osg在其内部通过osgGA::EventQueue类维护了一个事件 ...
- c语言中的0UL或1UL是什么意思
0UL 表示 无符号长整型 0 1UL 表示 无符号长整型 1 如果不写UL后缀,系统默认为:int, 即,有符号整数. 1.数值常数有:整型常数.浮点常数:2.只有数值常数才有后缀说明:3.数值常数 ...
- java日期获取前一天和后一天
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import j ...
- 从celery rabbitmq with docker-compose 引出对容器、依赖注入、TDD的感悟
用docker配置项目管理系统taiga的时候,不是我一个人遇到这个问题.https://github.com/douglasmiranda/docker-taiga/issues/5 问题描述: 用 ...
- Unity搭建简单的图片服务器
具体要实现的目标是:将图片手动拷贝到服务器,然后在Unity中点击按钮将服务器中的图片加载到Unity中. 首先简答解释下 WAMP(Windows + Apache + Mysql + PHP),一 ...