IOS-block实现页面之间的传值
来源:互联网 发布:淘宝制作图片文字软件 编辑:程序博客网 时间:2024/06/04 19:20
利用Block实现两个页面之间的传值,假设有两个控制器control1 和control2,control1上有一个label和一个button,点击button跳转到control2,control2上有一个button和一个textField,点击control2上的button回到control1,并将textField上输入的文字显示在control1的label上:
//---------------------control2.h#import <UIKit/UIKit.h>typedef void(^ChangeTextBlock) (NSString *text);@interface ModalViewController : UIViewController//定义一个block@property (nonatomic, copy) ChangeTextBlock block;@end//----------------------control2.m- (void) backAction: (UIButton *) button { //1) 取值 UITextField *textField = (UITextField *)[self.view viewWithTag:2000]; //2) 修改值 -----》 调用block来修改值 if (self.block != nil) { self.block(textField.text); } //3) 关闭模态视图 [self dismissViewControllerAnimated:YES completion:nil]; }//---------------------control1.m- (void) buttonAction: (UIButton *) button { //1. 实现block,使用__weak的原因:是防止内存的泄露 __weak Controller1 *control1 = self; //2. block的初始化 _modalViewController.block = ^(NSString *text) { //如果不用__weak的对象,那么这里会提示一个警告 ------> 内存的 UILabel *label = (UILabel *) [control1.view viewWithTag:1000]; label.text = text; }; //3. 弹窗模式 _modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; //4. 模态视图 [self presentViewController:_modalViewController animated:YES completion:nil]; }
这里我只把实现传值部分的代码附上,我们可以看到在control1的button实现的方法中,定义了一个用weak修饰的控制器control1指向自己,如果不用weak的对象,下面的block的实现会出现警告,提示内存泄漏:
0 0
- IOS-block实现页面之间的传值
- iOS - 页面之间传值的实现 - block
- iOS Block作为property属性实现页面之间传值
- IOS block 块实现简单的页面跳转传值
- ios 页面之间的传值:属性传值,代理传值,block传值
- iOS页面之间传值的方式(NSUserDefault/Delegate/NSNotification/Block)
- iOS delegate 实现页面之间的传值
- iOS delegate 实现页面之间的传值
- iOS 用delegate方式实现页面之间的传值
- iOS delegate 实现页面之间的传值
- iOS - 页面之间传值的实现 - 代理
- iOS开发 使用Block实现两个页面互相传值
- block页面之间简单传值
- IOS学习之页面之间的传值方式(Delegate/NSNotification/Block/NSUserDefault ,单例模式)
- iOS 属性传值 Block传值 两个ViewController之间的
- ios中控制器之间的反向传值之---Block
- Block实现页面传值
- ios控制器之间传值-Block传值
- bash命令 之创建目录
- oracle中两个重要的伪列-ROWNUM、ROWID
- 75.对称排序
- 如何在Windows环境下运行从linux 移植的Python脚本
- 框架标签嵌套
- IOS-block实现页面之间的传值
- POJ1840 Eqs(hash)
- 使用Jmeter进行http接口测试
- 76.万圣节派对
- 【HDU】5775 Bubble Sort
- Linux内核同步机制之(四):spin lock
- 错误处理:com.google.gson.stream.MalformedJsonException: Unexpected value at line 1 column 15
- HDU 1495 非常可乐(数论)
- 基于PhotoKit框架封装(相册的单选与多选)