UI Block传值

来源:互联网 发布:机械矩阵沙盘排名 编辑:程序博客网 时间:2024/05/18 22:41
MainViewController.m中创建button
在button的点击方法中

- (void)click:(UIButton *)button

{

//没有参数,没有返回值的block
void (^block) () = ^(){
NSLog(@“测试”);
}
//调用block
block();

//有参数,无返回值
//通过block传值不需要返回值,因为调用更需要返回值,所以传值的时候只要参数,不需要返回值
void(^block)(NSArray *) = ^(NSArray *arr){
NSLog(@“%@”, arr);

//传过来的数据的处理都在block中进行

}
 2.sec.block = block;

}


属性传值1.在sec.h中设置属性 @property(nonatomic, copy)void(^block)(NSArray *);
               2.在Main.m点击方法中 通过第二页sec.h属性接收block   (在block以外接收)
               3.在sec.m中的点击方法中调用传过来的block

sec.m

- (void)click:(UIButton *)button

{

    [self.navigationController popToRootViewControllerAnimated:YES];

3.NSArray *arr = @[@“1”, @“2”];

  self.block(arr);


}



创建一个UITableView

先做好基本的建立签好TableView的两个属性

1.在Sec.h中定义属性

@property(nonatomic, copy)void(^block)(NSString *)

为了方便,我们将在Sec.h头文件上定义一个新的类型名

typedef void(^Block)(NSString *)其中新名是Block 类型名是void(^)(NSString *)

改变之后为

@property(nonatomic, copy)Block block;

之后在Sec.m中对block进行释放

- (void)dealloc 

{

  //这个是block自己的release方法

  Block_release(_block);

  [super dealloc];

}

2.在Main.m中 通过sec.m中属性接收block

sec.block = block;

3.在Main.m的点击方法中调用传过来的block



        
0 0
原创粉丝点击