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”属性,因此,如果有多个控件连接到同一操作,则可以通过检查标记来确定哪个是哪个。