iPhone - 如何将一个对象传递给一个按钮动作

问题描述 投票:1回答:3

我必须将一个对象传递给一个按钮的动作......比如说

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

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

我该怎么做呢?

iphone iphone-sdk-3.0
3个回答
1
投票

你不能,按钮的动作签名总是*) -(IBAction)methodToCall:(id)sender 哪儿 sender 是你的按钮,或任何调用动作的东西。

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

我不知道你说的这个是什么意思。

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


0
投票

UIButton不能将对象传递给事件选择器。你可以使用属性 标签 例如,你可以把你的对象的指针转为 NSInteger,并把它分配给 tag 属性。

myButton.tag = SOMEBUTTON_ID;

你也可以把你的对象的指针转为 NSInteger 并把它分配给标签属性, 但这种技术并不能解决对象的寿命问题 而且在未来, 这种代码可能会停止工作.


0
投票

我发现了一个方法。

你创建一个UIButton类,在这个类里面声明一个公共变量,这个变量对应你要传递的对象类型。

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

然后当按钮被点击时,你就会检索ID,检索按钮和存储在它里面的对象。

现在你有了对象...

© www.soinside.com 2019 - 2024. All rights reserved.