block
来源:互联网 发布:baocms 蜂蜜源码 编辑:程序博客网 时间:2024/05/08 07:08
之前写的是第一次发,格式看着太别扭了,重新发
//block:从后一个页面向前一个页面传值;
//步骤:
//1.数据的发送方创建block属性; typedef block, 创建block属性;
//2.发送方定义一个方法,方法的参数是block类型, 方法的实现对block进行赋值;
//3.发送方在某个时刻, 执行block, 并进行数据传递;
//4.接收方,调用方法;
//注:block的属性用copy修饰, block创建在栈区, 为了保证block能够使用, copy将栈区的block拷贝到堆区;
传值页面.h
<span style="font-size:24px;">#import <UIKit/UIKit.h>typedef void (^BlockType)(NSString *string);@interface DetailViewController : UIViewController//block写属性用copy;//void (^)(NSString *string) 类型名; blockName 参数名;@property (nonatomic, copy) BlockType blockName;- (IBAction)valueButton:(UIButton *)sender;- (void)sendValue:(BlockType)aBlock;@end</span>
传值页面.m
#import "DetailViewController.h"#import "ViewController.h"@interface DetailViewController ()@end@implementation DetailViewController- (void)dealloc{ self.blockName = nil; [super dealloc];}- (IBAction)valueButton:(UIButton *)sender { //执行block _blockName(@"HelloWorld"); //返回上一个界面; [self.navigationController popViewControllerAnimated:YES];}- (void)sendValue:(BlockType)aBlock{ _blockName = aBlock;}
被传值页面.h
#import <UIKit/UIKit.h>@interface ViewController : UIViewController@property (retain, nonatomic) IBOutlet UILabel *valueLabel;@end
被传值页面.m
#import "ViewController.h"#import "DetailViewController.h"@interface ViewController ()@end@implementation ViewController- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { DetailViewController *detailVC = (DetailViewController *)[segue destinationViewController]; //block中不能够出现self, 会造成循环引用, //当在mrc(手动内存管理)下 __block ViewController *blockSelf = self;// //当在arc(自动内存管理)下// __weak ViewController *weakSelf = self; [detailVC sendValue:^(NSString *string) { NSLog(@"%@", string); blockSelf.valueLabel.text = string; }];}- (void)dealloc { [_valueLabel release]; [super dealloc];}
0 0
- Block
- block
- Block
- block
- block
- block
- block
- block
- block
- Block
- block
- Block
- Block
- Block
- Block
- block
- Block
- block
- Android支付接入(四):联通VAC计费
- 电子商务
- http://busumen.com/meishi/19170.html 010lstlr
- Android支付接入(五):机锋网
- 老年人癫痫的护理 015diyv2
- block
- Android支付接入(六):UC支付
- 成年人癫痫病病因 015wtqwv
- ZOJ Problem Set - 1392 The Hardest Problem Ever
- 分享两个在线学习网站
- Huffman树(使用优先队列优化)
- POJ 1442 Black Box
- 癫痫病的症状表现 01az2wqq
- Android支付接入(七):Google In-app-Billing