浅谈iOS常用的几种传值方式

1.属性传值

通常用于正向传值,适用于A和B相互具有一定关联性。不能用于隔页面传值。而且,需要传值的属性不能是私有属性,也就是说在.h中声明出来的属性才可以传值。

2.Block传值

使用场景:

常用于回调,简单的说就是B有一个按钮,当按钮被点击时把点击事件传传给A,并传一个字符串"B被点了"。


同样的Block在这里作为属性存在,同属性传值一样,需要两个控制器间具有一定关联性。不能跨页面传值。

如果一定要跨,就要像接力赛一样,A传给B,B传给C这样

3.代理传值

代理传值和block传值相似,都是将事件分发出去。但是与block的不同在于,代理具有松耦合性,谁想处理事件成为代理即可。


4.通知中心传值

上面说的代理属于一对一的关系,就好像一夫一妻制。你有需求只能找你的代理(你老婆)。而通知中心属于一对多的,就像村头的喇叭一喊,全村人都能听到。

而在实际开发中,常见用到的通知地方就是更换主题。在某个控制器发生事件,其他已存在的控制器作出响应。这里注意一点,是已存在


5.单例传值

iOS系统中常间的单例模式莫过于UIApplication、 NSNotificationCenter、 NSUserDefaults



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.属性传值 通常用于正向传值,适用于A和B相互具有一定关联性。不能用于隔页面传值。而且,需要传值的属性不能是私有...
    yzhxcql阅读 12,969评论 21 96
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,852评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,359评论 19 139
  • 1.属性传值。 2.block传值。 3.代理传值(delegate) 4.通知传值(notification)。...
    等不来的期待阅读 3,935评论 0 1
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,314评论 30 472