Как отправить несколько параметров в селектор? - PullRequest
1 голос
/ 25 апреля 2011

Здравствуйте, может кто-нибудь сказать мне, как отправить несколько параметров в селектор. Я создал одну кнопку программно, и я хочу отправить три параметра этого селектора кнопки. пожалуйста, помогите мне.

ниже приведен код, который я написал:

UIButton *addButtonObj = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[addButtonObj addTarget:self action:@selector(aMethod:)forControlEvents:UIControlEventTouchUpInside];
[addButtonObj setTitle:component.componentValue forState:UIControlStateNormal];

aMethod - это имя моего метода, и я хочу отправить несколько параметров этому.

Ответы [ 2 ]

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

При добавлении цели к вашему UIButton есть три возможности для передачи данных:

- (IBAction)aMethod;                                       // no data passed
- (IBAction)aMethod:(id)sender;                            // passed sender obj
- (IBAction)aMethod:(id)sender forEvent:(UIEvent *)event;  // passed sender obj + event

Вы можете присвоить своей кнопке метку и запросить ее в вашем aMethod: методе:

- (IBAction)aMethod:(id)sender {

    UIButton *theButton = (UIButton*)sender;
    if(theButton.tag == 42) {

        // call my fancy method with 3 params!
    }
 }

Может быть, вы должны предоставить более подробную информацию о том, чего вы, наконец, хотите достичь:).

С наилучшими пожеланиями, Christian

0 голосов
/ 25 апреля 2011
[yourButton addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];

но цель действия кнопки, вероятно, получает идентификатор (обычно с именем отправителя).

- (void) buttonPress:(id)sender;

В вызове метода отправитель должен быть кнопкой в ​​вашем случае, позволяющей вам прочитать свойства, такие как его имя, тег и т. Д.

...