初出茅庐,代理用的不熟练,但是也感觉到了它的威力所在,之前写代理都是照搬网上代码,想从代码搬运工到开发工程师还是需要自己思考努力,一点一点的做起吧
实现功能:点击cell上的按钮,实现跳转
思路:点击事件写在cell里,控制器遵循cell的代理,事件由代理方法传到出来在控制器中实现;
代码:
cell的 .h 文件中写一个代理,带参数,注意delegate的属性修饰符
,此处也不一定传sender.tag,项目中一般传的是该cell对应的模型数据。- (IBAction)editAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(editAddressWithIndex:)]) {
[self.delegate editAddressWithIndex:sender.tag];
}
}
视图控制器遵循代理方法并实现代理
@interface AddressListViewController ()<UITableViewDelegate,UITableViewDataSource,AdsListTableViewCellDelegate>
//来自cell的代理方法
- (void)editAddressWithIndex:(NSInteger)tag
{
EditAddressViewController *editVC = [[EditAddressViewController alloc]init];
[self.navigationController pushViewController:editVC animated:YES];
}