我必须将一个对象传递给一个按钮的动作......比如说
[myButton addTarget:self action:@selector(sendIt:MY_OBJECT) forControlEvents:UIControlEventTouchDown];
我不能设置一个变量并在方法上使用,因为我是在一个静态类上。
我该怎么做呢?
你不能,按钮的动作签名总是*) -(IBAction)methodToCall:(id)sender
哪儿 sender
是你的按钮,或任何调用动作的东西。
我不能设置一个变量并在方法上使用,因为我是在一个静态类上。
我不知道你说的这个是什么意思。
*与Mac相比,iPhone上还有一些其他新的签名,但这些签名也都不允许传递对象。
UIButton不能将对象传递给事件选择器。你可以使用属性 标签 例如,你可以把你的对象的指针转为 NSInteger,并把它分配给 tag 属性。
myButton.tag = SOMEBUTTON_ID;
你也可以把你的对象的指针转为 NSInteger 并把它分配给标签属性, 但这种技术并不能解决对象的寿命问题 而且在未来, 这种代码可能会停止工作.
我发现了一个方法。
你创建一个UIButton类,在这个类里面声明一个公共变量,这个变量对应你要传递的对象类型。
当你创建按钮时,你使用该类并将对象存储在其属性内。
然后当按钮被点击时,你就会检索ID,检索按钮和存储在它里面的对象。
现在你有了对象...