Передача данных объекта с помощью кнопки UIButton - PullRequest
6 голосов
/ 08 ноября 2010

Я создал пользовательский класс FormDropdown UIView, который содержит вопрос и кнопку в кончике. В классе также есть свойство 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 ]

1 голос
/ 07 апреля 2011

Я считаю, что вы можете сделать это, добавив "ассоциативную ссылку" из UIButton к данным вашего объекта.

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

0 голосов
/ 30 марта 2012

Я тоже ищу способ сделать это ... однако, это кажется невозможным.

Мое возможное решение: я думаю, что я собираюсь создать подкласс UIButton, и добавитьсвойство NSObject * tagObject для него.

Кто-то, кажется, что-то не так?(Я использую ARC, и мне интересно, если это приведет к тому, что объекты останутся в памяти - я так не думаю).

...