ios应用view之间数据传递的方式

对于不一样的viewcontroller之间数据的共享和处理
ios

  1. 采用代理的方式,子viewcontroller设计代理协议,并定义协议接口,父viewcontroller实现协议接口,实现子视图控制器退出时将相关数据更新到父视图中app

  2. 采用ios的消息机制,父viewcontroller注册消息,子viewcontroller发送消息,触发父viewcontroller的消息处理oop

  3. 采用database做为数据中间的存储媒介,子viewcontroller将状态数据存入DB,父viewcontrller从DB获取数据更新viewui

  4. 采用ios的NSdefault存储;spa

  5. 经过appdelegate中定义全局变量实现中间数据的存储设计

注:代理

第一,使用反向代理举例:两个viewcontroller之间,让视图二退出时视图一拥有视图二的颜色;对象

这里要解决两个问题:第一,视图二退出时,让视图一本身将颜色改掉,毫无疑问,视图一这个类须要增添方法;继承

这个方法只能是视图二来设计代理协议,并定义协议接口;第二,传值问题,在进入第二个视图以前,第二个视图需将代接口

理设置为视图一,为后面视图二来调用事件时,代理来调用代理已经实现的方法作铺垫;

比较正向代理的思路:这个是在ui中顺序执行的状况下;在oc阶段遇到person class两个类,咱们经过person设计协

议,定义协议接口是person,那么让班级实现把这个person对象添加到班级名录中的方法;

第二:appdelegate这里是UI中的实现runloop的单例,对于单例,咱们本身也能够写一个sharedInstance;注意和自

己写一个单例类同样,传值时,appdelegate,sharedInstance都须要拥有要传的数据的字段属性;

第三:这里牵涉到协议@protocal首先在oc中没有多态,多继承;经过@peotocal的方式实现多态;协议谁来作,谁实

现,其对应的头文件中用角括号添加协议名;然后引入代理,老板类在本身的头文件引入需来作这份协议差事的代理字段

属性,并在老板类实现文件中引入协议头文件(而在代理类由于头文件角括号引入了协议,因此其对应实现文件不需再加

协议头文件);

相关文章
相关标签/搜索