首页 > 代码库 > 界面间的传值

界面间的传值

属性传值----从前往后
步骤:
 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;
   }
}


界面间的传值