例子1:A控制器-》跳转—》B控制器 , 假设想从B控制器回传数组给A控制器

实现:B控制器.h文件定义一个block参数,.m文件执行block,A控制器设置block内容

B.h文件
//创建block块
@property(nonatomic,copy) void (^Block)(NSArray *array);
B.m文件
//执行block块
!self.Block? (此处为空格):Blcok(array); //判断是否存在Block,存在则执行Block,并且将数组array传递给某某(某某指who定义了Block块的执行代码,此处传递给A控制器) A.m文件
B *b=[[B alloc]init];
b.Block=^(NSArray *array){
  //Block执行代码
  //... 
};
//B.m中判断存在Block块,则执行Blcok(array),于是进入A.m的 “Block执行代码” 处进行处理,其中“Block执行代码”的array参数获得B.m传递过来的array //使用Block过程,需注意循环引用,如对self的循环引用,使用__weak typeof(self) weakSelf=self;

例子2:A控制器完成任务,通知B控制器执行下一步任务

A.h文件
//创建block块
@property(nonatomic,copy) void (^Block)(); A.m文件
//执行block块
!self.Block? (此处为空格):Blcok(); //判断是否存在Block,存在则执行Block B.m文件
A *a=[[A alloc]init];
a.Block=^(){
  //Block执行代码
  //进行一步任务
};
//a.m中判断存在Block块,执行Blcok(),B.m进入“Block执行代码” 相当于接收到A传递过来的通知信号 //使用Block过程,需注意循环引用,如对self的循环引用,使用__weak typeof(self) weakSelf=self;

Block实现代理/通知效果的更多相关文章

  1. iOS开发——OC篇&消息传递机制(KVO/NOtification/Block/代理/Target-Action)

     iOS开发中消息传递机制(KVO/NOtification/Block/代理/Target-Action)   今晚看到了一篇好的文章,所以就搬过来了,方便自己以后学习 虽然这一期的主题是关于Fou ...

  2. block和代理小结

    代理使用原则: 代理方法的参数是要传的值,代理方法的返回值是要得到的值(即要调用的类回传的值),并且在实现的代理方法中的值就是原来的类要传的值(设置delegate=self),  比如2个类 A,B ...

  3. iOS block和代理的区别

      block和代理是iOS开发中实现回调的两种方式,大多数情况下是用哪个都可以,主要看个人喜好.本文主要是对两者做一下对比. 1.block简介   在 iOS中, block一共分三种.   (1 ...

  4. IOS中block和代理

    从ios4开始引入block,就是代码块,结构类c语言 基本结构 返回值 (^block名称)(参数):int(^BlockName)(int):返回值为int型,参数是一个int值的叫BlockNa ...

  5. iOS开发之巧用Block和代理方法结合来传值

    好久没写技术博客了,因为996的工作周期已经持续好几个月了.每天晚上回家都没有太多精力学习很多其他的东西,而且很多时候是接着完善工作的项目的模块开发.所以博客停歇了这么久,更新率也低了不少,今天补充一 ...

  6. IOS第十天(1:QQ好友列表 ,自定义的headview,代理 ,通知 ,black的使用)

    *****HMViewController.m #import "HMViewController.h" #import "HMFriendsGroupModel.h&q ...

  7. iOS之 block,代替代理作为回调函数

    最近在弄一个视频会议的项目,但今天要说的跟视频基本没关系,我们来说一下在一个view中创建一个button,在controller中加载这个view 当button被点击后将时间响应传递给contro ...

  8. Block与代理的使用

    本人其实是比较喜欢用Block的,因为用block写出来的代码,让我感觉代码要紧凑一些,看起来的时候,思路要清晰些,所以这估计也就是现在block将要代替代理的原因所在吧! 下面,直接进入主题: 一. ...

  9. iOS设计模式-Block实现代理的逻辑

    在A页面,点击跳转到B页面,B页面操作完,回到A页面,并刷新A页面的内容.典型的例子,就是在一个列表里,点击新增,跳到新增页面,新增完,把数据传回给列表页,并刷新列表页里的内容. 这个,我平时一般是通 ...

随机推荐

  1. Window Server 2019 配置篇(4)- 配置WDS实现自动部署服务

    上次我们建立了hyper-v集群,那么我们这次需要对集群内的客户机和外部的服务器进行自动部署,这时候需要WDS服务 WDS服务是一种自动部署服务,能够对无OS的计算机进行操作系统的部署 首先建立虚拟机 ...

  2. HIVE ROW_NUMBER()函数去重

    SELECT * FROM( SELECT *,ROW_NUMBER() OVER(PARTITION BY a.claimno ORDER BY b.financiancedate DESC)  n ...

  3. 重采样Resample 的一些研究记录。

    最近项目有需要重采样算法,先找了一下,主流的就是几个开源算法,Speex / Opus / ffmpeg / sox 1.最早的事Speex,算法源自CCRMA(Center for Computer ...

  4. [YOLO]《YOLOv3: An Incremental Improvement》笔记

    相比较于前两篇论文,个人感觉YOLO3作者有点来搞笑的!!!虽然加了一些新的点子进来,但是,论文的开头是这样的: 简单理解就是作者花了很多时间玩Twitter去了,所以没有做啥研究!!!! 然后: 你 ...

  5. CharacterEncodingFilter这个spring的过滤器

    org.springframework.web.filter.CharacterEncodingFilter 对请求于响应的编码进行过滤,半路出家的和尚总是对什么都感觉到好奇,都想记录下来(

  6. 从0到1完成微信小程序开发(2)

    一,小程序的文件结构 小程序包含一个描述程序的app和多个描述各自页面的page 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 一个小程序页面由四个文件组成,分别是: 下面是一个单页 ...

  7. 149-PHP大小写转换函数

    <?php $str='PHP is a very good programming language.'; //定义一个字符串 echo "未经处理的字符串:<br /> ...

  8. Swift 闭包使用(循环引用...)

    class networkTool: NSObject { //定义一个可选类型的闭包,用小括号()?括起闭包 var finishedCallBack2:((_ jsonData:String)-& ...

  9. IDE一直在indexing, 造成系统卡死解决方法

    点击箭头指向,重启idea

  10. Java中的日期表示类

    一.概述 Java中的日期类设计的比较失败,刚开始使用Date来计算时间,后来大部分Date类的方法都过时了:想用Calendar类代替Date类,然而Calendar类也是不尽如人意.下面简单介绍下 ...