我要传递一个对象到一个按钮的动作......像iPhone - 如何将一个对象传递给一个按钮动作
[myButton addTarget:self action:@selector(sendIt:MY_OBJECT) forControlEvents:UIControlEventTouchDown];
东西,我不能设置一个变量,并使用对方法,因为我在一个静态类上。
我该怎么做?
感谢您的任何帮助。
我要传递一个对象到一个按钮的动作......像iPhone - 如何将一个对象传递给一个按钮动作
[myButton addTarget:self action:@selector(sendIt:MY_OBJECT) forControlEvents:UIControlEventTouchDown];
东西,我不能设置一个变量,并使用对方法,因为我在一个静态类上。
我该怎么做?
感谢您的任何帮助。
我发现了一种方法来做到这一点。
您创建一个UIButton类,并在该类内部声明一个公共变量,该公共变量对应于要传递的对象的类型。
当您创建按钮时,使用该类并将该对象存储在其属性中。
然后,当按钮被点击时,您检索ID,检索存储在其中的按钮和对象。
现在你有对象...
你不能,一个按钮的动作签名总是*)-(IBAction)methodToCall:(id)sender
其中sender
是你的按钮,或任何正在调用的动作。
我不能设置一个变量并在方法上使用它,因为我在一个静态类上。
我不确定你的意思是什么。
*)与Mac相比,iPhone上还有一些新的签名,但都不允许传递对象。
UIButton无法将对象传递给事件选择器。您可以使用属性标签例如:
myButton.tag = SOMEBUTTON_ID;
而且你反对NSInteger的你可以施放指针并将其分配给Tag属性,但这种技术没有解决的对象和寿命的问题将来,此类代码可能会停止工作。
这是做到这一点的一种方式,虽然它不是在可可中常见的方法。 – 2010-03-23 19:15:10