代码改变世界

iOS开发_传值

2015-08-07 13:20  圆圆的月亮在地上  阅读(154)  评论(0编辑  收藏  举报

在iOS开发中常用的参数传递有以下几种方法:

1.采用代理模式

  1. 定义好协议,协议中定义好传参时所需的方法。
  2. 目标控制器设置协议的代理
  3. 源控制器实现这个协议,并在初始化目标控制器时设置目标控制器的代理为源控制器,并实现代理方法
  4. 需要传参的时候在目标窗口调用代理的协议方法,适用于一对一的传值

2.采用iOS消息机制

  1. 适用于一对多的传值。

3.通过NSDefault存储(或者文件、数据库存储等)

4.通过AppDelegate定义全局变量(或者使用UIApplication、定义一个单例类等)

5.通过控制器属性传递

  1. 适用于从前往后一对一的传值

6.block传值

  1. 目标控制器类型定义一个block,并设置一个block的属性。typedef void (^blockName)(type1 *par1,type2 par2);
  2. 源控制器在初始化目标控制器时实现目标控制器block的方法。
  3. 需要传参或者回调时在目标控制器调用block。self.block(par1,par2);