码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发之---传值大全

时间:2016-04-23 21:13:15      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

通知/代理/block都可以传值
(顺传倒传都可以)

一 顺传 用属性传值最简单明了

二 逆传 用block更简洁

三 通知传值使用场景
    1- 很多控制器都需要知道一个事件,应该用通知(传递参数的过程就是传值);
    2 - 相隔多层的两个控制器之间传值

———————————————————————————————————————————————————————————

8种传值方式

 ?定义初始化方法在UI中,?般都是用在一个界面去推送另?个界?的时候,总之你要想到既然要?自定义初始化方法,?至少能够要在当前方法中去创建该对象。所以这种方式不适合回调。

 1 ?定义初始化方法,将需要传递的内容作为参数,如果需要传递多个,则设置多个参数.

 2 在合适的地方进?调用?定义初始化?法。



代理传值:(顺传倒传都行)

  1>拟定?份协议(命名一般是XXXDelegate),协议里面的?法的参数取决于你要传递的内容

  2>设置代理人属性(再次强调,使用assign防?循环引用)

  3>在需要调?的地?调?,这?步比较抽象,?如上面所讲例?子,我们是需要在button点击的时候

  4>传值并且取消界面,所以我们的delegate就在这个?面的进?调用

  5>让相应的对象成为代理人,?般都是在创建的时候指定一个代理?

  6>遵守协议,并且实现相应的方法,然后在方法中进行逻辑处理


 
单例传值:(顺传倒传都行) 单例的好处就在于只要创建了一次,其余任何时候访问到的对象都是同一个,所以很多时候?用户的?一些信息都是存储到单例中,这样就不需要多次进?行传值了,只需要再次创 建单例就可以了



属性传值:(顺传)
1 需要定义公开属性
2 需要?个你需要传值的对象
3 进行属性赋值



通知传值:(顺传倒传都行)
第三个界面的值传给第?个界面。
1. 在第?个界面建?一个通知中心, 通过通知中?,注册一个监听事件
2. 在第一个界?中,设置接收到通知的事件。
3. 在第?个界?面中的dealloc中, 将通知中心remove掉
4. 在第三个界面中, 建?一个通知中心, 通过通知中心, 发送通知(发送通知的过程就是传值的过程,将要传输的值作为object的值传给第一个界面



AppDelegate传值:
在AppDelegate中声明?一个属性
通过AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate] 保存属性 通过AppDelegate *app = [UIApplication sharedApplication].delegate 使用属性



block传值:(顺传倒传都行) block同样用于回调

1  为block取别名,并且在参数列表中将需要传递的参数写成形参

2  设置block属性(注意使用copy)

3  设置?个?法持有当前block

4  在合适的地方进行调?类似于代理

5  在创建该对象的地方进行block?面的调用



NSUserDefault或?件传值:(顺传倒传都行)

[[NSUserDefaults standardUserDefaults] objectForKey:]

初始化传值:(顺传:)

倒传需要在”ViewDidAppear””ViewWillAppear”中

iOS开发之---传值大全

标签:

原文地址:http://www.cnblogs.com/iOS-SZH/p/5425421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!