ios - 对于UIButton如何通过@selector传递多个参数

标签 ios iphone ios6 uibutton

<分区>

我需要为单个 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 POST 到 Google 表单(电子表格)

下一篇:ios - 如何在 Cocoas2D 中以自定义大小呈现 'UIViewController'

相关文章:

ios - ABAddressBook:是否可以获取源的名称?

ios - 我的 iOS 应用程序需要很长时间才能回到前面

ios - 自定义 UISegmentedControl 的颜色

ios - 在 MCSession 中设置最大对等点数

ios - 使用 NSUserActivity 的 Handoff 中的 userInfo 是空的

ios - 如何调用 tableView :cellForRowAtIndexPath: safely in UITableView?

ios - UICollectionView 的每个部分独立滚动?

iphone - ASIHttpRequest : requestDidFinishSelector vs. requestDidFailSelector

iphone - NSDocumentDirectory 加载图像

ios - 使用 NSManager 撤消剪贴板文本