关于_block操作
来源:互联网 发布:qq三国100js单刷过关 编辑:程序博客网 时间:2024/05/16 02:04
A类对应的一个界面,现在需要更新下数据,需要到跳转到B界面去取数据。虽然委托和通知两种方法都能用了,但是回调更加简单。
B类里要做的:
我先在B中设置好回调块 typedef void (^TimePickerBlock)(); 放在B.h文件夹的@interface声明之外,然后在B.h下声明一个块对象
@property (nonatomic, copy) TimePickerBlock timePickerblock;//回调
其中^(块名)(代表有参数),TimePickerBlock是自己取的一个块名。
再到B.m中设置返回A界面的那个促发方法中,设置self.timePickerblock(sender); 其中sender就是我要传递回去的数据。
传递回去的数据应该跟A中声明的类型是一样的。
A里面要做的:
在A中声明 B *bb 成员。初始化后使用方式:
bb.timePickerblock = ^(参数类型 参数名称){
//在这里可以使用你获取的参数,做你想做的事情
}
B类里要做的:
我先在B中设置好回调块 typedef void (^TimePickerBlock)(); 放在B.h文件夹的@interface声明之外,然后在B.h下声明一个块对象
@property (nonatomic, copy) TimePickerBlock timePickerblock;//回调
其中^(块名)(代表有参数),TimePickerBlock是自己取的一个块名。
再到B.m中设置返回A界面的那个促发方法中,设置self.timePickerblock(sender); 其中sender就是我要传递回去的数据。
传递回去的数据应该跟A中声明的类型是一样的。
A里面要做的:
在A中声明 B *bb 成员。初始化后使用方式:
bb.timePickerblock = ^(参数类型 参数名称){
//在这里可以使用你获取的参数,做你想做的事情
}
其中timePickerblock就是在B中声明的块成员;
整个运行机制是:
在A中,
bb.timePickerblock = ^(NSString *strTime){
//在这里可以使用你获取的参数,做你想做的事情
NSLog(@"ehe time = %@",strTime);
[self.btnTime setTitle:strTime forState:UIControlStateNormal];
};
[self.view addSubview:bb.view];
第一句只是一个块赋值,括号里面的语句不会运行,第二句是将bb.view设置为当前顶层view。
然后就是B来控制操作了。当在B上进行完了相应的操作,促发到要切换为A界面的时候,会同时促发self.timePickerblock(strTemp)块函数传递数值给A:
- (IBAction)clickBack:(id)sender {
NSString *strTemp = [NSString stringWithFormat:@"%@:%@",strHour,strMin];
self.timePickerblock(strTemp);
[self.view removeFromSuperview];
}
然后A中的快函数就能执行了。输出ehe time = *
0 0
- 关于_block操作
- _block
- IOS7学习----------_block
- 黑马程序员_block
- IOS(UI)_Block传值
- IOS _Block传值
- IOS(UI)_Block代码块
- weak、 _weak、 _block的格式
- _block和__weak 的区别
- 黑马程序员_OC基础09_block
- 黑马程序员_block 和 protocol的使用
- iOS_JSON_XML_图片内存缓存_Block回调
- IOS基础_Block语法的简单使用
- OC 学习第六天_Block的使用
- iOS开发_block的简单使用
- _block 与 __weak的区别理解
- 黑马程序员—Objective-C基础_block、协议
- 黑马程序员--IOS_学习笔记_block和@protocol
- Android输入法扩展之外接键盘显示虚拟键盘修改
- Android WebView的几个操作
- 中断控制---工作队列
- MINA源码分析---处理时间分析过滤器
- A Codebook-Free and Annotation-Free Approach for Fine-Grained Image Categorization(精读)
- 关于_block操作
- OpenGL 纹理过滤
- Java NIO--Charset
- Codeforces Round #281 (Div. 2) - B
- stringByAppendingString、---Format、---PathComponent、---PathExtension之间的区别
- 【C#】小总
- android apktool 反编失败,提示brut.androlib.err.UndefinedResObject: resource spec:
- C指针,C语言中的指针详解
- SVN一些常用命令