利用ObjC关联
NSDictionary *param = @{@"name":@"小明",@"age":@"25",@"favorite":@"eat"};//想要传的参数
UIButton *clickButton = /*...*/ create button
[clickButton addTarget:self action:@selector(testClick:) forControlEvents:UIControlEventTouchUpInside];
objc_setAssociatedObject(clickButton, "param", param, OBJC_ASSOCIATION_RETAIN_NONATOMIC); //参数(按钮,参数key,参数对象,关联策略)
//测试方法
- (void)testClick:(UIButton *)sender{
NSDictionary *param = objc_getAssociatedObject(sender, "param"); //取参
NSLog(@"first: %@",param);
}
/*
打印结果:
2016-06-22 10:34:45.879081+0800 TestProject[3097:222603] param: {
age = 25;
favorite = eat;
name = "小明";
}
*/
tip:别忘记导入runtime
#import <objc/runtime.h>