属性传值----从前往后
步骤:
1.在后一个界面定义属性.(属性类型和传输数据类型一致)
2.在从前一个界面进入下一个界面之前, 将数据传给第二界面
3.第二个界面取出对应的数据给对应的控件显示
代理传值----从后往前
步骤:1.在后一个界面定义协议:(定义一个传值的方法, 这个方法必须有参数, 参数的类型必须和传输数据类型一致)
2.后一个界面,定义代理属性, 用来保存代理对象
3.在进入到后一个界面之前, 指定后一个界面的代理对象为前一个界面
4.前一个界面服从协议
5.前一个界面实现协议中的方法
6.后一个界面让代理执行协议中的方法(执行方法时, 把传输数据作为方法的参数)时机是返回上一界面之前
单例传值----从前往后或者从后往前
单例传值
1.定义单例类, 提供创建单例对象的+号方法 命名规范:以main shared standard defalut开头
2.在单例类中定义属性, 存储要传递的数据(属性类型和传输数据类型一致)
3.在进入下一界面之前, 将数据让单例对象存储
4.在其他界面中 直接从单例对象中获取数据即可
单例:保证一个类只能有一个对象
新建单例类 添加创建对象的+号方法, 内部保证无盖该方法调用多少次. 对象只创建一个.
单例优势:(1)节省空间(只能创建一个对象)
(2)共享内存单元
弊端: 单例的空间在整个应用程序运行期间空间都不会回收. 会存在内存泄露问题, 他存在的意义在于解决特定的问题
.h
@interface Singleton : NSObject
//提供创建单例对象的便利构造器方法, 命名规范:以main shared standard defalut开头
+ (Singleton *)mainSignleton;
//存储输入框中的数据
@property (nonatomic, copy) NSString * data;
@end
.m
+ (Singleton *)mainSignleton
{
//加同步锁:
@synchronized (self){
//静态变量
//初始化一次
static Singleton * singleton = nil;
if (singleton == nil) {
singleton = [[Singleton alloc] init] ;
}
return singleton;
}
}