由ControllerA跳转到controllerB,在controllerB中选择一个参数的值,并将它传回给controllerA。

  首先,在controllerB的.h文件中写入:

@interface ViewControllerB :UIViewController

//定义一个block,返回值的参数类型为 id ,名称为VCBBlock
typedef void(^VCBBlock)(id); //声明一个上一行定义的block,这个实例化的block的名字叫做“exampleOfABlock”
@property(nonatomic,copy)VCBBlock exampleOfVCBBlock; @end

  接着在controllerB的.m文件中写入:

whenSomethingHappened  {

//我们选择了一个值
NSString *string = @"信息"; //将这个值传回给之前的界面
self.exampleOfVCBBlock(string); }

  接下来,在controllerA的.m文件中import "controllerB.h"

  然后在继续在A的.m文件中写入:

whenSomethingHappened {

//跳转到controllerB
ViewControllerB *vc =[ [ ViewControllerB alloc ] init ];
[ self.navigationController pushViewController: vc animated : YES]; vc.exampleOfVCBBlock = ^( id * str ) { //参数回调,接收在B中选择的类型为id的值
//在这里可以写入对传回的值的操作,比如 NSLog(str); };

[OC] Block的使用的更多相关文章

  1. Swift3.0 函数闭包与OC Block

    刚接触Swift,如有不对的点,欢迎指正.转载请说明出处 定义一个基本函数 //定义一个函数,接收一个字符串,返回一个String类型的值 func test(name:String) -> S ...

  2. OC Block网上转载

    1.block是一个特殊的OC对象, 它建立在栈上, 而不是堆上, 这么做一个是为性能考虑,还有就是方便访问局部变量. 2.默认情况下block使用到的局部变量都会被复制,而不是保留.所以它无法改变局 ...

  3. OC BLOCK和协议

    一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. block实际上是: 指向结构体的指针 BOLC ...

  4. OC block的简单使用

    http://blog.csdn.net/itpeng523/article/details/23965147 一.先用Xcode创建一个空工程 学习block之前先用弄懂c语言的函数指针 看代码: ...

  5. iOS - OC Block 代码块

    前言 Block 是一段预先准备好的代码,可以在需要的时候执行,可以当作参数传递.Block 可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.Block 是 C 语言的,类似于一个 ...

  6. oc block基本使用

    // // main.m // block基本使用 // // Created by Ymmmsick on 15/7/21. // Copyright (c) 2015年 Ymmmsick. All ...

  7. OC Block(代码块)

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  8. OC block声明和使用

    #import "Button.h" typedef int (^MySum) (int, int); void test() { // 定义了一个block,这个block返回值 ...

  9. oc block 遍历数组及字典

    原遍历数组NSArray * lines = ...for (NSString * line in lines) { // ...}for (int i = 0; i < lines.count ...

随机推荐

  1. GoogLeNet 之 Inception v1 v2 v3 v4

    论文地址 Inception V1 :Going Deeper with Convolutions Inception-v2 :Batch Normalization: Accelerating De ...

  2. Python中pass的用法、作用

    pass主要作用就是占位,让代码整体完整.如果定义一个函数里面为空或一个判断写好了之后还没想好满足条件需要执行执行什么逻辑,又想留着后面使用,但是函数和判断里面为空,那么就会报错,当你还没想清楚函数内 ...

  3. linux安装siege

    siege安装笔记 本文介绍centos和ubuntu安装方法 centos安装 下载: [root@ siege-4.0.4]# wget http://download.joedog.org/si ...

  4. mysql下载源码方法

    方法一 进入mysql官网:http://dev.mysql.com/downloads/mysql/ 选择相关的平台下载: 3.选择Source Code 选型后,拉倒网页下方,选择要下载的源码包 ...

  5. git如何创建 .gitignore文件

    1.右键 点击git bash here 2.输入 touch .gitignore 生成 .gitignore文件 过滤 不上传 node_modules/

  6. 常见的爬虫分析库(3)-Python正则表达式与re模块

    在线正则表达式测试 http://tool.oschina.net/regex/ 常见匹配模式 模式 描述 \w 匹配字母数字及下划线 \W 匹配非字母数字下划线 \s 匹配任意空白字符,等价于 [\ ...

  7. [转] babel的使用

    一.配置文件.babelrc .babelrc 文件存放在项目的根目录下. { "presets": [], "plugins": [] } presets 字 ...

  8. UICollectionViewController的用法1

    UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableVie ...

  9. [转]scp、sftp命令使用

    http://wangxuedong.com/index.php/archives/182/ 前言 有时候想上传文件到服务器或者从服务器下载一个文件到本地,但是服务器还没有配置ftp等环境,这时候可以 ...

  10. NEST - 编写布尔查询

    Writing bool queries Version:5.x 英文原文地址:Writing bool queries 在使用查询 DSL 时,编写 bool 查询会很容易把代码变得冗长.举个栗子, ...