如何将多个参数发送到选择器?

时间:2011-04-25 07:04:55

标签: iphone objective-c selector

你好任何人都可以告诉我如何向选择器发送多个参数。我以编程方式创建了一个按钮,我想发送该按钮选择器的三个参数。请帮帮我。

下面是我写的代码:

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

aMethod是我的方法名称,我想向此发送多个参数。

2 个答案:

答案 0 :(得分:1)

将目标添加到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!
    }
 }

也许你应该提供更多关于你最终想要实现的细节:)。

最诚挚的问候, 基督教

答案 1 :(得分:0)

[yourButton addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];

但是按钮操作的目标可能会收到一个id(通常名为sender)。

- (void) buttonPress:(id)sender;

在方法调用中,发件人应该是您案例中的按钮,允许您读取其名称,标签等属性。