2010-03-23 20 views
1

我要传递一个对象到一个按钮的动作......像iPhone - 如何将一个对象传递给一个按钮动作

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

东西,我不能设置一个变量,并使用对方法,因为我在一个静态类上。

我该怎么做?

感谢您的任何帮助。

回答

0

我发现了一种方法来做到这一点。

您创建一个UIButton类,并在该类内部声明一个公共变量,该公共变量对应于要传递的对象的类型。

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

然后,当按钮被点击时,您检索ID,检索存储在其中的按钮和对象。

现在你有对象...

+0

这是做到这一点的一种方式,虽然它不是在可可中常见的方法。 – 2010-03-23 19:15:10

1

你不能,一个按钮的动作签名总是*)-(IBAction)methodToCall:(id)sender其中sender是你的按钮,或任何正在调用的动作。

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

我不确定你的意思是什么。

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

0

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

myButton.tag = SOMEBUTTON_ID; 

而且你反对NSInteger的你可以施放指针并将其分配给Tag属性,但这种技术没有解决​​的对象和寿命的问题将来,此类代码可能会停止工作。

相关问题