【问题标题】:Passing object data with UIButton press按下 UIButton 传递对象数据
【发布时间】:2011-05-06 15:12:22
【问题描述】:

我创建了一个自定义 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 数组传递给方法?

【问题讨论】:

标签: iphone objective-c uiview ios uibutton


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 想不出这样做有什么危险,但是非常不方便。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 2017-06-12
    相关资源
    最近更新 更多