这篇文章主要记录block保存代码的用法。
本例子实现对不同 标的 状态的不同操作。
1.首先在BidCellitem.h模型类中申明block
@property (nonatomic,strong)void(^selectbidcellBlock)();
2.在TableViewController.m的- (void)viewDidLoad方法中定义block(包含了数据源的方法)
- (void)viewDidLoad {
[super viewDidLoad];
for (NSInteger i ; i<20; i++) {
Bidtstaus staus = arc4random()%5;
BidCellitem *item = [BidCellitem itemWithBidtstaus:staus];
__weak typeof(item)Weakitem = item;
item.selectbidcellBlock = ^{
__strong typeof(Weakitem)StrongItem = Weakitem;
NSString *message = [StrongItem.title stringByAppendingString:@"的控制器"];
UIAlertController *alertController =[UIAlertController alertControllerWithTitle:@"想去跳转" message: message preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"好的"style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
};
[self.bidArr addObject:item];
}
}
在TableViewController.m的didSelectRowAtIndexPath方法中调用了block
if (item.selectbidcellBlock) {
item.selectbidcellBlock();
};