iOS如何实现传值---block传值
2014-07-05 09:44
417 查看
先来复习下如何定义一个block
返回值 (^block名)(参数列表) = ^(参数列表){
};
例如:
[objc] view
plaincopy
// block的写法
//定义block
void (^block)(int) = ^(int a){
NSLog(@"%d", a);
};
如何使用block:
block名(参数);
例如:
[objc] view
plaincopy
// block的写法
//定义block
void (^block)(int) = ^(int a){
NSLog(@"%d", a);
};
// block的使用(执行block中的代码)
block(10);
// 可以给同类型的block类型赋值
void (^block1)(int) = block;
函数中参数为block类型
[objc] view
plaincopy
- (void)textBlock:( void (^)(int) )block
{
block(3);
}
调用含有block类型的参数的方法
[objc] view
plaincopy
[self textBlock:block];
临时定义一个block参数
[objc] view
plaincopy
[self textBlock:^(int a) {
NSLog(@"%d", a);
}];
使用重定义快速定义一个block
[objc] view
plaincopy
// 把void(^)(int) 类型重定义为BLOCK
typedef void(^BLOCK)(int);
[objc] view
plaincopy
// 利用新定义的BLOCK变量 定义
BLOCK b = ^(int a ){
NSLog(@"%d", a);
};
现在来讲如何利用block传值
第一步:
[objc] view
plaincopy
// 在第一个页面中定义一个block 确定需要进行的操作
void (^changeColorBlock)(UIColor *color) = ^(UIColor *color) {
// 改变颜色
[self.view setBackgroundColor:color];
};
第二步:
在第二个页面类中声明一个属性
[objc] view
plaincopy
// 重定义一个Block类型
typedef void(^BL)(UIColor *color);
//定义一个block属性 一定要用copy属性
@property (nonatomic, copy) BL block;
第三步:
给第二个页面的block赋值
[objc] view
plaincopy
secondVC.block = changeColorBlock;
第四步:
在第二个界面中比如说按了一个按钮,把值传回到第一个界面类中
[objc] view
plaincopy
- (void) btnClick:(UIButton *)btn
{
self.block([UIColor orangeColor]);
[self.navigationController popViewControllerAnimated:YES];
}
内存管理:
[objc] view
plaincopy
-(void)dealloc
{
Block_release(_block);
[super dealloc];
}
返回值 (^block名)(参数列表) = ^(参数列表){
};
例如:
[objc] view
plaincopy
// block的写法
//定义block
void (^block)(int) = ^(int a){
NSLog(@"%d", a);
};
如何使用block:
block名(参数);
例如:
[objc] view
plaincopy
// block的写法
//定义block
void (^block)(int) = ^(int a){
NSLog(@"%d", a);
};
// block的使用(执行block中的代码)
block(10);
// 可以给同类型的block类型赋值
void (^block1)(int) = block;
函数中参数为block类型
[objc] view
plaincopy
- (void)textBlock:( void (^)(int) )block
{
block(3);
}
调用含有block类型的参数的方法
[objc] view
plaincopy
[self textBlock:block];
临时定义一个block参数
[objc] view
plaincopy
[self textBlock:^(int a) {
NSLog(@"%d", a);
}];
使用重定义快速定义一个block
[objc] view
plaincopy
// 把void(^)(int) 类型重定义为BLOCK
typedef void(^BLOCK)(int);
[objc] view
plaincopy
// 利用新定义的BLOCK变量 定义
BLOCK b = ^(int a ){
NSLog(@"%d", a);
};
现在来讲如何利用block传值
第一步:
[objc] view
plaincopy
// 在第一个页面中定义一个block 确定需要进行的操作
void (^changeColorBlock)(UIColor *color) = ^(UIColor *color) {
// 改变颜色
[self.view setBackgroundColor:color];
};
第二步:
在第二个页面类中声明一个属性
[objc] view
plaincopy
// 重定义一个Block类型
typedef void(^BL)(UIColor *color);
//定义一个block属性 一定要用copy属性
@property (nonatomic, copy) BL block;
第三步:
给第二个页面的block赋值
[objc] view
plaincopy
secondVC.block = changeColorBlock;
第四步:
在第二个界面中比如说按了一个按钮,把值传回到第一个界面类中
[objc] view
plaincopy
- (void) btnClick:(UIButton *)btn
{
self.block([UIColor orangeColor]);
[self.navigationController popViewControllerAnimated:YES];
}
内存管理:
[objc] view
plaincopy
-(void)dealloc
{
Block_release(_block);
[super dealloc];
}
相关文章推荐
- iOS如何实现传值---block传值
- iOS如何实现传值---target-action设计模式
- XZ_iOS之block实现逆向传值
- 关于iOS中block如何实现的探究
- iOS开发 使用Block实现两个页面互相传值
- iOS如何实现传值---属性传值
- Swift如何实现代理,block传值
- iOS中详解Block作为property属性实现页面之间传值
- iOS 使用Block实现界面间传值
- iOS如何实现传值---协议传值
- IOS block 块实现简单的页面跳转传值
- Android:如何实现例如iOS的listview 的弹性效果
- iOS菜鸟学习——如何实现Label文本自适应
- iOS开发_iphone开发_iphone界面如何实现下拉列表
- ios如何实现推送通知
- iOS中block实现的探究
- ios如何实现内部购买的方法
- 如何在iOS中使用Block
- iOS开发如何实现消息推送机制
- iOS开发_iphone开发_iphone界面如何实现下拉列表