标签:
对于不同的viewcontroller之间数据的共享和处理
采用代理的方式,子viewcontroller设计代理协议,并定义协议接口,父viewcontroller实现协议接口,实现子视图控制器退出时将相关数据更新到父视图中
采用ios的消息机制,父viewcontroller注册消息,子viewcontroller发送消息,触发父viewcontroller的消息处理
采用database作为数据中间的存储媒介,子viewcontroller将状态数据存入DB,父viewcontrller从DB获取数据更新view
采用ios的NSdefault存储;
通过appdelegate中定义全局变量实现中间数据的存储
注:
第一,使用反向代理举例:两个viewcontroller之间,让视图二退出时视图一拥有视图二的颜色;
这里要解决两个问题:第一,视图二退出时,让视图一自己将颜色改掉,毫无疑问,视图一这个类需要增添方法;
这个方法只能是视图二来设计代理协议,并定义协议接口;第二,传值问题,在进入第二个视图之前,第二个视图需将代
理设置为视图一,为后面视图二来调用事件时,代理来调用代理已经实现的方法做铺垫;
比较正向代理的思路:这个是在ui中顺序执行的情况下;在oc阶段遇到person class两个类,我们通过person设计协
议,定义协议接口是person,那么让班级实现把这个person对象添加到班级名录中的方法;
第二:appdelegate这里是UI中的实现runloop的单例,对于单例,我们自己也可以写一个sharedInstance;注意和自
己写一个单例类一样,传值时,appdelegate,sharedInstance都需要拥有要传的数据的字段属性;
第三:这里牵涉到协议@protocal首先在oc中没有多态,多继承;通过@peotocal的方式实现多态;协议谁来做,谁实
现,其对应的头文件中用角括号添加协议名;而后引入代理,老板类在自己的头文件引入需来做这份协议差事的代理字段
属性,并在老板类实现文件中引入协议头文件(而在代理类因为头文件角括号引入了协议,所以其对应实现文件不需再加
协议头文件);
标签:
原文地址:http://www.cnblogs.com/Free-Thinker/p/5089760.html