使用UIButton按下传递对象数据

时间:2010-11-08 11:59:07

标签: iphone objective-c uiview ios uibutton

我已经创建了一个自定义的UIView类FormDropdown,其中包含一个问题&笔尖中的按钮。在类中也是一个NSArray属性,它应该存储按钮的各种选项。

因此可以通过执行此操作来放置按钮,例如viewDidLoad方法:

FormDropdown *dropdown = [FormDropdown dropdownWithQuestion:@"This is an example question" andLabel:@"Select one" andOptions:[NSArray arrayWithObjects:@"One", @"Two", @"Three", nil]];
[self.view addSubview:dropdown];

显然,我想按下按钮,当点击时,会显示带有选项的UIPickerView。但我坚持如何将选项发送到任何方法。我知道我可以像这样在按钮上附加一个动作:

[dropdown.dropdownButton addTarget:self action:@selector(dropdownPressed:) forControlEvents:UIControlEventTouchUpInside];

..但我看不出如何将dropdown.options数组中的选项传递给方法?

2 个答案:

答案 0 :(得分:1)

我相信你可以通过从UIButton添加一个“关联引用”到你的对象数据来做到这一点。

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocAssociativeReferences.html

答案 1 :(得分:0)

我正在寻找一种方法来做到这一点......但是,它似乎不可能。

我可能的解决方案:我想我要创建一个UIButton的子类,并为它添加一个“NSObject * tagObject”属性。

有人觉得有什么不妥吗? (我正在使用ARC,我想知道是否会导致对象留在内存中 - 我不这么认为。)