UINavigationController的用法   界面间传值

UInavigationController继承于UIViewController,以栈的方式管理所控制的师徒控制器,至少要有一个被管理的视图控制器

创建的时候需要用户提供一个视图控制器作为导航控制器的一个根视图控制器

出栈和人栈

UINavigationController通过控制入栈和出栈来展示各个视图控制器

视图控制器切换常用方法

pushViewController:animated //进⼊下一个视图控制器

popViewControllerAnimated //返回上一个视图控制器

popToViewController:animated //返回到指定的视图控制器

popToRootViewControllerAnimated //返回到根视图控制器

定制UINavigationBar

对于navigationBar, iOS7默认的高度是64.

如果将navigationBar的透明度关闭之后,navigationBar的高度将会变为44

整理

每一个视图控制器都有一个navigationItem属性,当这个控制器被嵌入到UINavigationController里之后UINavigationController的navigationBar会根据控制器的navigationItem属性显示标题,左按钮,右按钮等等

 
UINavigationController  push到哪个控制器,哪个控制器的view就会显示在UINavigationController 的contentView里面.同时  ,navigationBar也会根据navigationItem配置bar的显示
 
 
UINavigationBar属于MVC的V层,主要负责  导航条上的内容的显示,以栈的方式管理了一组navigationItem,展示的内容是由每一个控制器的navigationItem决定(有没有标题,有没有左右按扭,有几个,分别执行什么事件等等),另外navigationBar也有自己的属性,比如背景图片,tintColor,barTintColor等
 
UINavigationItem属于MVC中得M层,为UINavigationBar提供展示的数据(包括标题,左右按钮)
 
UIBarButtonItem用于描述 条形视图 (UINavigationBar,UIToolBar等) 上的一个按钮,也属于Model
 
UINavigationController导航控制器属于MVC中得C,主要功能:以栈的方式管理控制器的切换(视图的切换和导航栏内容的切换,) 并伴有动画效果,每个控制器实现自己视图的布局以及事件处理,导航控制器仅仅负责切换,重要的属性:viewControllers,navigationBar 等
//UINavigationController包含一个UINavigationBar
//UINavigationBar管理多个UINavigationItem
//UINavigationItem包含多个UIBarButtonItem
 
 
界面间传值
1.属性传值   ---从前往后传
2.单例传值   ---万能
3.代理传值   ---从后往前
//属性传值

//1.后面的界面定义一个属性 用于保存 ,前一个界面需要传过来得值
//注意:属性定义成字符串还是别的类型,取决于你的需求,本例我们需要一个字符串,用于label显示
//2.后面的界面创建完毕之后,为属性赋值(即:记录需要传递的值)
//3.在需要使用值得地方,使用属性记录的值
//这种通过定义属性,达到传值目的的方式,称为属性传值
//属性传值,.一般用于 从前一个界面向后一个界面传值

//代理传值:从后一个界面往前一个界面传值

//流程

//1.后一个界面定义一个协议,并且定义一个属性叫delegate

//2.在前一个界面进入后一个界面的瞬间(即:创建完后一个界面之后).让前一个界面作为后一个界面的delegate

//3.前一个界面事件代理方法

//4.后一个界面在合适的机会, 让代理执行代理方法 (传得值以参数的形式含在代理方法里)

单例传值

先建一个类,设置单例模式,并加一个属性,用来存值

//Singleton.h中代码
#import <Foundation/Foundation.h> @interface Singleton : NSObject
+ (Singleton *)sharedsingleton;
@property (nonatomic,retain) NSString *str;
@end
//Singleton.m中代码 #import "Singleton.h" @implementation Singleton
static Singleton *single = nil;
+ (Singleton *)sharedsingleton
{
@synchronized(self){
if (single ==nil) {
single = [[Singleton alloc] init];
}
return single;
}
}
@end

在一个界面的button触发事件的方法中加入下面代码

Singleton *s = [Singleton sharedsingleton];

s.str = _textfield.text;

在需要接受值得页面加入

self.navigationItem.title = [Singleton sharedsingleton].str;//传过来的值设置为bar中title值

UI学习笔记---第八天的更多相关文章

  1. 《JavaScript权威指南》学习笔记 第八天 Node Tree

    前几天介绍了DOM的知识,以及节点的操作.今天我们来重点理解下Node的属性以及方法. 在Document文档里属于Node的东西很多: 其中Document对象是Node对象最大的对象,平时我们使用 ...

  2. Semantic ui 学习笔记 持续更新

    这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...

  3. UI学习笔记---第十天UITableView表视图编辑

    UITableView表视图编辑 表视图编辑的使用场景 当我们需要手动添加或者删除某条数据到tableView中的时候,就可以使用tableView编辑.比如微信 扣扣中删除和某人的通话 当我们需要手 ...

  4. UI学习笔记---第二天

    程序的执行流程 一.自定义视图 自定义UILebal-UITextField视图 ⾃定义视图:系统标准UI之外,⾃己组合而出的新的视图. 实际开发中,我们还需⾃定义视图.积累⾃己的代码库.⽅便开发. ...

  5. UI学习笔记---第一天

    一.iOS概述 iOS是Apple公司的移动操作系统,主要⽤用于iPhone.iPad.iPad Mini.iPod Touch等移动产品. 借助iOS,我们可以开发视频类.美图类.新闻类.⾳乐类.团 ...

  6. 基于AngularJS的Onsen UI --Onsen UI学习笔记

    AngularJS与Onsen UI的结合,Onsen UI应用程序实际上是一个AngularJS 1应用程序. <!doctype html><html lang="en ...

  7. .Net Core,VUE,VS Code,Sql Sugar,Element UI学习笔记

    1..Net Core的目的是跨平台,并主要目标是作为服务端开发使用.从3.0开始,引入了Winfrom和WPF. 2..Net Core可以引用.Net Framework生成的dll和exe,不限 ...

  8. Amaze UI学习笔记——JS学习历程一

    1.自定义事件 (1)一些组件提供了自定义事件,命名方式为{事件名称}.{组件名称}.amui,用户可以查看组件文档了解.使用这些事件,如: $('#myAlert').on('close.alert ...

  9. jquery ui学习笔记

随机推荐

  1. 操作系统cmd算法

    实验一  命令解释程序的编写(两周内) 一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS, ...

  2. iOS8 针对开发者所拥有的新特性汇总如下

    iOS8 针对开发者所拥有的新特性汇总如下 1.支持第三方键盘 2.自带网页翻译功能(即在线翻译) 3.指纹识别功能开放:第三方软件可以调用 4.Safari浏览器可直接添加新的插件. 5.可以把一个 ...

  3. POJ 2253 Frogger 最短路 难度:0

    http://poj.org/problem?id=2253 #include <iostream> #include <queue> #include <cmath&g ...

  4. struts2 文件的上传下载 表单的重复提交 自定义拦截器

    文件上传中表单的准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设 ...

  5. javascript作用域(Scope),简述上下文(context)和作用域的定义

    网页制作Webjx文章简介:这篇文章将正面解决这个问题:简述上下文(context)和作用域的定义,分析可以让我们掌控上下文的两种方法,最后深入一种高效的方案,它能有效解决我所碰到的90%的问题. 作 ...

  6. SrcollView分页加载数据(布局)

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools=& ...

  7. AJAX笔记

    浏览器脚本——AJAX AJAX =  异步的 JavaScript 和 XML(Asynchronous JavaScript and XML). 是一种新的技术,它可以创建更好.更快且交互性更强的 ...

  8. linux下文件系统的介绍

    一.linux文件系统的目录结构 目录 描述 / 根目录 /bin 做为基础系统所需要的最基础的命令就是放在这里.比如 ls.cp.mkdir等命令:功能和/usr/bin类似,这个目录中的文件都是可 ...

  9. lightoj1080 线段树

    //Accepted 6628 KB 520 ms //I a b 把a到b区间的二进制位去反,转化成a到b区间的数全部加1 //Q a 判断第a位的奇偶 #include <cstdio> ...

  10. poj1125(Floyd最短路)

    //Accepted 164 KB 0 ms //floyd #include <cstdio> #include <cstring> #include <iostrea ...