UI学习笔记---第八天
UINavigationController的用法 界面间传值
UInavigationController继承于UIViewController,以栈的方式管理所控制的师徒控制器,至少要有一个被管理的视图控制器
创建的时候需要用户提供一个视图控制器作为导航控制器的一个根视图控制器
出栈和人栈
UINavigationController通过控制入栈和出栈来展示各个视图控制器
视图控制器切换常用方法
pushViewController:animated //进⼊下一个视图控制器
popViewControllerAnimated //返回上一个视图控制器
popToViewController:animated //返回到指定的视图控制器
popToRootViewControllerAnimated //返回到根视图控制器
定制UINavigationBar
对于navigationBar, iOS7默认的高度是64.
如果将navigationBar的透明度关闭之后,navigationBar的高度将会变为44
整理
每一个视图控制器都有一个navigationItem属性,当这个控制器被嵌入到UINavigationController里之后UINavigationController的navigationBar会根据控制器的navigationItem属性显示标题,左按钮,右按钮等等
//代理传值:从后一个界面往前一个界面传值
//流程
//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值
最新文章
- angularJs 指令的理解
- gcc编译过程简述
- Android PullToZoomListView实现放大回弹效果
- 【GIT】Github上传本地代码详解
- Javascript 方法大全
- SQL2005中的事务与锁定(三)- 转载
- jmeter随笔(11)--上传文件接口出错
- django开发框架之jumpserver
- 习题二:string数组应用
- jQuery的类数组对象结构
- 201521123097《Java程序设计》第六周学习总结
- python3.4 + Django1.7.7 表单的一些问题
- 二十:让行内元素在div中垂直居中
- 定时刷新页面SetInterval 和setTimeout -时间间隔可以动态设定
- pygame-KidsCanCode系列jumpy-part18-背景滚动
- ssh中的 Connection closed by ***
- python Exception raise
- OpenStack基础知识
- [XPath] XPath 与 lxml (五)XPath 实例
- App优化 StrictMode 严格模式