iOS,Block传值

iOS页面之间传值,通常采取四种方式:属性、通知、代理和Block回调传值这四种方式。 

今天在这里,我们详细讲解Block回调传值这种方式。

一、Block回调传值通常用于两个页面之间的反向传值。如下所示,图一所示第一个视图控制器需要接收来自第二个视图控制器的值(图2 为第二个界面),即反向传值,在这里我们用Block回调实现。

                              图1    第一个视图控制器

                               图2   第二个视图控制器

   图3  第一个视图控制器接收到第二个视图控制器回传的值

二、具体实现步骤

第一个视图控制器:ViewController

第二个视图控制器:CustomViewController

(一)  首先,在第二个视图控制器CustomViewController.h中声明Block属性,该Block有参数,无返回值。如下图所示。

第二行代码,为整个Block函数定义了一个新名字ReturnTextBlock,方便后面的使用

第六行代码,定义一个Block属性

(二)其次,第一个视图控制器ViewController.m文件中,获得第二个视图控制器的对象cvc,而该cvc对象拥有之前定义的Block属性(ReturnTextBlock block),在此处编写该Block的实现,cvc.block  =  ^ ( NSString*  text )  { _label.text = text ; };     如下图所示。

注意:此处只是该Block方法的定义,当用户点击“到第二个界面”按钮时,该Block内部的代码_label.text = text ;并不会执行,只有该Block被调用时(需要传值时,就会调用该Block。在此案例中,该Block的调用在第二个视图控制中),才会执行该Block内部的代码。

(三)最后,在第二个视图控制器CustomViewController.m文件中调用Block传值。该语句_block(_textField.text);就是调用Block。运行这条语句就是去执行第一个视图控制器ViewController.m文件中^ ( NSString*  text )  { _label.text = text ; };代码(因为这是该Block的实现),从而将值回传到第一个界面。

三、以上就是Block传值的三个步骤,声明、定义、调用。一定要记住,定义只有被调用时才会被执行!!!

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

相关阅读更多精彩内容

  • 在我们需要在另一个页面中获取到这个页面个的数据的时候,我们就需要将这个页面通过某种形式传递给另一个页面。在这里我们...
    Joker_King阅读 10,829评论 5 16
  • //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄 /**注意点: 1.看 GIF 效果图.2.看连线...
    石虎132阅读 3,744评论 0 5
  • Block传值 .h 第二个页面 .m 第一个页面 .m 第二个页面 是写在方法里的,在方法里定义个block,有...
    Roger_单阅读 5,636评论 5 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,212评论 19 139
  • 想起这份感情呀
    果爷娘阅读 1,405评论 0 0

友情链接更多精彩内容