block 常用于反向传值

声明

返回值类型 (^block)(参数列表)

调用

闭包的名字=^(参数列表){};

闭包的名字();

如:

void(^aaaaa)(int num,NSString *Sring);

aaaaa=^(int num,NSString *string){

NSLog(@"%d,%@",num,string);

};

aaaaa(120,@“www");

block实现反向传值

(1)用属性实现:

1.在.h文件声明:@property(nonatomic,copy)void(^block)(NSString * Nametexts);

2.在.m文件声明block的值:-(void)back:(UIButton *)sender{

self.block (sender.titleLabel.text);

[self dismissViewControllerAnimated:YES completion:nil];

}

3.在另一个ViewController.m中导入第一步的.h文件,之后:-(void)gonext{

nextViewController *next = [[nextViewController alloc]init];

next.block =^(NSString * Nametexts){

label.text =Nametexts;(这里的Nametexts可以命名为别的名字,不影响传值)

};

[self presentViewController:next animated:YES completion:nil];

(2)用方法实现:1.在ViewController1.h 声明方

法:-(void)tou:(void(^)(NSString *message))block;

2.在ViewController1.m 调用这个方法:-(void)tou:(void(^)(NSString *message))block{

block(@"大黄牛");

}

3.在ViewController.m中导入ViewController1.h  之后在- (void)viewDidLoad 输入:ViewController1 *v1 = [[ViewController1 alloc]init];

[v1 tou:^(NSString *message) {

NSLog(@"%@",message);

}];

注意:1.修改Block外部变量的时候 需添加__block 修饰。

如:__block UIImage *image = nil;

imageNameBlock =^(NSString *imageName){

image = [UIImage imageNamed:imageName];

self.view.backgroundColor = [UIColor colorWithPatternImage:image];

};

imageNameBlock (@"头像.jpg");

2.声明的 block为 全局变量时

block会被循环引用 因此要用 __weak 弱引用

例: __weak ViewController *vis = self;

__block UIImage *image = nil;

imageNameBlock =^(NSString *imageName){

image = [UIImage imageNamed:imageName];

vis.view.backgroundColor = [UIColor colorWithPatternImage:image];

};

IOS- 最简单的反向传值- block的更多相关文章

  1. ios 得用代理反向传值

    应用场景:有时时候从界面A跳转到界面B,界面B在返回的时候须要将处理的结果传递给A. 实现思路:1,定义一个负责传值的协义,界面A拥有该协义属性,并实现该协义中的方法 2.界面B也拥有该协义属性(代理 ...

  2. block 反向传值回调

    /** *  block 反向传值回调 */ //在第二个控制器中 //   (1)声明block,在基类中已写好 //   (2)写好传值方法 //(1) typedef void (^Return ...

  3. iOS Block界面反向传值

    在上篇博客 <iOS Block简介> 中,侧重解析了 iOS Block的概念等,本文将侧重于它们在开发中的应用. Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C ...

  4. IOS Block 反向传值

    1.在需要像上一个界面传值的.h 文件实现代理方法 @property (nonatomic, copy) void(^isOpenHandler)(BOOL) ; 2.在执行操作的时候需要江操作的结 ...

  5. 使用block进行界面之间的反向传值

    目标:在两个独立的控制器的界面之间进行反向传值 关键技术:block 代码编写及运行环境:Xcode6.4 / 模拟器8.4 语言:Objective-C 注:使用纯代码实现,不使用xib/story ...

  6. iOS 页面间几种传值方式(属性,代理,block,单例,通知)

    第二个视图控制器如何获取第一个视图控制器的部分信息 例如 :第二个界面中的lable显示第一个界面textField中的文本 这就需要用到属性传值.block传值 那么第一个视图控制器如何获的第二个视 ...

  7. iOS 代理反向传值

    在上篇博客 iOS代理协议 中,侧重解析了委托代理协议的概念等,本文将侧重于它们在开发中的应用. 假如我们有一个需求如下:界面A上面有一个button.一个label.从界面A跳转到界面B,在界面B的 ...

  8. 代理和block反向传值

    代理传值: // SendViewController.h #import <UIKit/UIKit.h> @protocol SendInFor <NSObject> -(v ...

  9. iOS 页面间传值 之 单例传值 , block 传值

    ios 页面间传值有许多,前边已经分享过属性传值和代理传值,今天主要说一下单例传值和 block 传值 单例传值:单例模式一种常用的开发的模式,单例因为在整个程序中无论在何时初始化对象,获取到的都是同 ...

随机推荐

  1. Java数组的内存管理

    Java数组的内存管理 Java语言是典型的静态语言,因此Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的.Java程序中的数组必须经初始化才能使用.所谓初始化,就是当数组对象的元 ...

  2. LDO稳压器工作原理

    LDO稳压器工作原理 随着便携式设备(电池供电)在过去十年间的快速增长,像原来的业界标准 LM340 和LM317 这样的稳压器件已经无法满足新的需要.这些稳压器使用NPN 达林顿管,在本文中称其为N ...

  3. git安装教程

    msysgit是Windows版的Git,从https://git-for-windows.github.io下载(网速慢的同学请移步国内镜像),然后按默认选项安装即可. 安装完成后,在开始菜单里找到 ...

  4. (Map)利用Map,完成下面的功能:  从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。  附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录 (Map)在原有世界杯Map 的基础上,增加如下功能: 读入一支球队的名字,输出该球队夺冠的年份列表。 例如,读入“巴西”,应当输出 1958 1962 1970 1

    package homework001; import java.util.HashMap; import java.util.Scanner; public class Map { public s ...

  5. linux tomcat自启动设置

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. SQL Server笔记

    SQL Server所能读取的最小单位是页,每个页8KB,8个物理上连续的页就是一个区,这样数据库中每MB就包含有16个区 堆是没有聚集索引的表.如果表格上没有聚集索引,数据行将不按任何特殊顺序存储, ...

  7. javafx for android or ios ?

    javafx是否支持android 或者 ios这是一个令人感兴趣的话题.google一番,发现有可行方案: 1. javafx on android: 两种方案:(事实上差点儿相同) 1.有位大神已 ...

  8. 图片轮换cycle插件的运用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Python 魔术方法指南

    入门 构造和初始化 构造定制类 用于比较的魔术方法 用于数值处理的魔术方法 表现你的类 控制属性访问 创建定制序列 反射 可以调用的对象 会话管理器 创建描述器对象 持久化对象 总结 附录 介绍 此教 ...

  10. .NET下解析Json的方法

    .NET下几种常见的解析JSON方法 主要类 命名空间 限制 内建LINQ支持 DataContractJsonSerializer System.Runtime.Serialization.Json ...