我必须将对象传递给按钮的动作......类似于
[myButton addTarget:self action:@selector(sendIt:MY_OBJECT) forControlEvents:UIControlEventTouchDown];
我无法设置变量并在方法上使用它,因为我在静态类上。
我该怎么做?
感谢您的帮助。
答案 0 :(得分:1)
你不能,按钮动作的签名始终是*)-(IBAction)methodToCall:(id)sender
,其中sender
是你的按钮,或任何调用动作的行为。
我无法设置变量并在方法上使用它,因为我在静态类上。
我不确定你的意思。
*)与Mac相比,iPhone上还有其他一些新的签名,但这些签名都不允许传递对象。
答案 1 :(得分:0)
UIButton无法将对象传递给事件选择器。您可以使用属性标记示例:
myButton.tag = SOMEBUTTON_ID;
此外,您可以将指向您的对象的指针转换为NSInteger并将其指定给tag属性,但此技术无法解决对象生命周期的问题,将来此类代码可能会停止工作。
答案 2 :(得分:0)
我发现了一种方法。
您创建了一个UIButton类,并在类中声明了一个与您想要传递的对象类型相对应的公共变量。
创建按钮时,使用该类并将对象存储在其属性中。
然后当单击该按钮时,您将检索该ID,检索该按钮以及存储在其中的对象。
现在你有了对象......