iPhone - 如何将对象传递给按钮操作

时间:2010-03-23 17:39:55

标签: iphone iphone-sdk-3.0

我必须将对象传递给按钮的动作......类似于

[myButton addTarget:self action:@selector(sendIt:MY_OBJECT) forControlEvents:UIControlEventTouchDown];

我无法设置变量并在方法上使用它,因为我在静态类上。

我该怎么做?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

你不能,按钮动作的签名始终是*)-(IBAction)methodToCall:(id)sender,其中sender是你的按钮,或任何调用动作的行为。

  

我无法设置变量并在方法上使用它,因为我在静态类上。

我不确定你的意思。

*)与Mac相比,iPhone上还有其他一些新的签名,但这些签名都不允许传递对象。

答案 1 :(得分:0)

UIButton无法将对象传递给事件选择器。您可以使用属性标记示例:

myButton.tag = SOMEBUTTON_ID;

此外,您可以将指向您的对象的指针转换为NSInteger并将其指定给tag属性,但此技术无法解决对象生命周期的问题,将来此类代码可能会停止工作。

答案 2 :(得分:0)

我发现了一种方法。

您创建了一个UIButton类,并在类中声明了一个与您想要传递的对象类型相对应的公共变量。

创建按钮时,使用该类并将对象存储在其属性中。

然后当单击该按钮时,您将检索该ID,检索该按钮以及存储在其中的对象。

现在你有了对象......