UI11_Block传值
2015-08-13 20:42
405 查看
目的:前后传值.我们在两个视图控制器中创建UIButton(点击进去下一页,和返回上一个页面)进行传值
从后往前传值
现象:后面控制前面的背景颜色.block没有返回值没有参数 第一个页面的点击方法中 -(void)click:(UIButton *)button { //没有参数没有返回值的block //通过block改变self.view的背景颜色 void(^block)()=^() { self.view.backgroundColor=[UIColor colorWithRed:arc4random()%265/250.0 green:arc4random()%265/250.0 blue:arc4random()%265/250.0 alpha:1]; } //调用 block(); // 定义第二个界面的视图控制器的对象 SecondViewController *second=[[SecondViewController alloc]init]; //正题-传值步骤2 //此地方传的是变量 将block变量传到第二页 second.block=block; [self.navigationController pushViewController:second animated:YES]; }
第二个页面 传值步骤1 //在.h文件写一条属性,负责接收第一页想第二页传递过来的block @property(nonatomic, copy)void(^block)(); 传值步骤3 在.m文件中的Button点击方法中 -(void)click:(UIButton *)button { //3.调用传过来的block //后面是使用block方法 // self.block(); }
传数组
block传值不需要返回值,因为调用更需要返回值,所以传值的时候只要参数不需要返回值 等号前面是参数的类型,等号后面是形参列表 传过来的数据在block中进行
Button的点击方法中 void(^block)(NSMutableArray *)=^(NSMutableArray *arr) { NSLog(@"%@",arr); }; SecondViewController *second=[[SecondViewController alloc]init]; [self.navigationController pushViewController:second animated:YES]; second.blockOne=block; [second release]; 在SecondViewController.h中 定义属性 @property(nonatomic,copy)void(^blockOne)(NSMutableArray *); 在.m文件中 定义个数组arr(在扩展里定义的) Button点击中方法中 -(void)click:(UIButton *)button { [self.navigationController popToRootViewControllerAnimated:YES]; self.blockOne(self.arr); }
相关文章推荐
- WPf中多线程改UI
- IOS--UI--NSOperation
- swanzhu学ios(四)之UIScrollView与UIPageControl
- 导航控制器---UINavigationController
- ZOJ 2966 Build The Electric System【最小生成树】
- poj 1458 Common Subsequence
- LeetCode-Implement Queue using Stacks
- UIControl和它的子类
- android 事件处理机制之requestDisallowInterceptTouchEvent
- The Unique MST--hdoj
- The Unique MST--hdoj
- HDU1711-Number Sequence-KMP算法(模板)
- 代码手写UI,xib和StoryBoard间的博弈
- UITableView 的编辑
- UITextField 详解
- 配置UIAutomator中的ANT环境报不是内部命令与外部命令
- SOAPUI 循环设置
- SOAPUI 属性传递之二
- SOAPUI 数据源设置
- iOS开发UI中懒加载的使用方法