在UIButton中的动作选择中传递参数

时间:2010-10-21 23:30:13

标签: iphone objective-c xcode

鉴于你有一个方法

-(void)aSelector:(id)anyArgument;

并以编程方式设置了UIButton

UIButton *myButton = [[UIButton alloc] init]  

好吧,我明白当你创建一个UIButton时,你必须使用这个方法

[myButton addTarget:nil action@selector(aSelector:) for ControlEvents:UIControlEventTouchUpInside];

但我在哪里通过论证?我知道通常情况下,你会使用

[myButton withObject:anyArgument];

但是NSControl不允许这样做但是有可能因为选择器名称后的冒号表示如此。

2 个答案:

答案 0 :(得分:6)

通常,-aSelector:将像这样定义

- (void) aSelector:(id)sender
{
NSLog(@" sender = %@", sender);
}

,参数将是myButton。请记住,您可能有几个按钮都调用方法-aSelector:然后,您需要在运行时区分哪个是调用方(发送方)。

答案 1 :(得分:2)

UIControl的addTarget仅支持这三种形式的选择器。

- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)event

您无法添加自定义参数。