<分区>
<分区>
我需要为单个 UIButton
传递两个操作。
第一个参数成功传递,如下所示:
[imageButton addTarget:self action:@selector(imageClicked:) forControlEvents:UIControlEventTouchUpInside];
imageButton.tag = 1;
但是我还需要为同一个按钮传递另一个参数:
int secondAction =10;
[imageButton addTarget:self action:@selector(imageClicked:*secondAction) forControlEvents:UIControlEventTouchUpInside];
任何人都可以帮助如何为单个按钮/选择器传递两个值吗?
最佳答案
您可以使用 Objective C Runtime 功能将数据与对象相关联:
第 1 步:将其导入您的类(class):#import <objc/runtime.h>
第 2 步:创建一个 key 名称为:static char * kDataAssociationKey = "associated_data_key";
第 3 步:将数据与您的对象(例如:按钮)关联为:
NSString *your_data =@"Data which is being associated";
objc_setAssociatedObject(imageButton,
kDataAssociationKey,
your_data,
OBJC_ASSOCIATION_RETAIN);
第 4 步:在您的方法中获取关联数据:
NSString *value = (NSString *)objc_getAssociatedObject(imageButton, kDataAssociationKey);
希望对你有帮助。
关于ios - 对于UIButton如何通过@selector传递多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20280627/
相关文章:
ios - ABAddressBook:是否可以获取源的名称?
ios - 自定义 UISegmentedControl 的颜色
ios - 使用 NSUserActivity 的 Handoff 中的 userInfo 是空的
ios - 如何调用 tableView :cellForRowAtIndexPath: safely in UITableView?
ios - UICollectionView 的每个部分独立滚动?
iphone - ASIHttpRequest : requestDidFinishSelector vs. requestDidFailSelector