Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在UIButton中的操作选择中传递参数_Iphone_Objective C_Xcode - Fatal编程技术网

Iphone 在UIButton中的操作选择中传递参数

Iphone 在UIButton中的操作选择中传递参数,iphone,objective-c,xcode,Iphone,Objective C,Xcode,既然你有办法 -(void)aSelector:(id)anyArgument; 并以编程方式设置UIButton UIButton *myButton = [[UIButton alloc] init] 好的,我的想法是,当你创建一个UIButton时,你必须使用这个方法 [myButton addTarget:nil action@selector(aSelector:) for ControlEvents:UIControlEventTouchUpInside]; 但我在哪里传递

既然你有办法

-(void)aSelector:(id)anyArgument;
并以编程方式设置UIButton

UIButton *myButton = [[UIButton alloc] init]  
好的,我的想法是,当你创建一个UIButton时,你必须使用这个方法

[myButton addTarget:nil action@selector(aSelector:) for ControlEvents:UIControlEventTouchUpInside];
但我在哪里传递这个论点呢?我知道通常情况下,你会使用

[myButton withObject:anyArgument];

但是NSControl不允许这样做,但是它是可能的,因为选择器名称后面的冒号表示这样做

通常,-aSelector:的定义如下

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

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

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

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

无法添加自定义参数。

正确。只是想澄清一下:传递的参数是触发动作的控件。在本例中,
myButton
。还请注意,您可以在单个控件上设置“tag”属性,因此,如果有多个控件连接到同一操作,则可以通过检查标记来确定哪个是哪个。