iOS • 记——代理传值和Block传值的简单对比

在iOS开发中,两个界面之间的传值是开发中经常会用到,给需要传值的对象,直接定义属性就能传值。传值分为两种,顺传和逆传,今天主要是分享逆向传值中,使用代理和block的一些对比。

接下来我们通过一个简单的例子来看看,打开xcode,新建一个project,我们创建两个控制器,在第一个控制器中添加一个label,设置数字为456,我们通过第二个控制器的传值来改变第一个控制器的label的数字,效果如下所示:

1.gif

代理传值

打开xcode,创建一个新的project,创建两个控制器,如图所示:

Paste_Image.png

我们在ModalViewController.h中设计代理方法:

Paste_Image.png

我们为了给两个界面做区别,在ModalViewController中,设置一下它的背景颜色,使用touchBegan方法,通过modal的跳转方式来实现传值,如下图所示:

Paste_Image.png

接着,我们回到第一个控制器,创建label,设置label的数字为456,遵守我们刚刚的代理,然后依然使用touchBegan方法,调用代理方法:

Paste_Image.png
Paste_Image.png

block传值

block传值相对于代理来说,代码非常简单。如下:

Paste_Image.png
Paste_Image.png

在第一个控制器中,我们只需要一句代码就可以实现传值:

Paste_Image.png
Paste_Image.png

总结:传值是我们在开发中常用的技术点,block相对于代理传值来说代码量会少很多,写法也相对简单,我个人在日常开发中使用block的几率比较多,不过,不同的业务逻辑开发有不同的需求,代理传值和block传值在不同的需求中各有优势。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,545评论 19 139
  • iOS开发中,页面传值是很常见的,但是页面传值你究竟知道多少呢?笔者这篇文章就是给大家介绍一下页面传值的具体方式,...
    蒲公英少年带我飞阅读 2,264评论 10 45
  • 风住尘香花已尽 日晚倦梳头 物是人非事事休 欲语泪先流 …… 载不动许多愁 敬仰千古第一才女 李清照的卓尔不凡 崇...
    和风润雨yang阅读 191评论 1 1
  • Vocabulary 1. Marilyn closes her eyes. Maybe, when she op...
    棕二阅读 447评论 0 0
  • 回首的车尾,露出那么深沉的不舍,东去的铁轨,绵延存留着叹息。 读了一半的《呼兰河转》,又一次出行带着这本书,也许就...
    少阁阅读 281评论 1 0

友情链接更多精彩内容