我怎样才能通过UiButton行动中的任何一种参数?

我想通过button操作传递一个url,因为我有10个button,这些button是通过代码dynamic创build的,然后单击,然后为每个相应的button分配一个特定的url。 这是我的代码

NSString *linkUrl = [NSString stringWithFormat:@"%@",[AllrecordG objectForKey:@"Link"]]; [leftLabelG addTarget:self action:@selector(clickMe:linkUrl:) forControlEvents:UIControlEventTouchUpInside]; -(void)clickMe:(UIButton *)sender{ } 

但在这里我得到警告作为“未使用的variableslinkUrl”。

我已经研究过不同的文章,但有人告诉说,不可能通过参数连接。 任何人都可以告诉我,如何传递每个button操作的url,以及如何检索这些值。 在clickMe定义中。

提前致谢。

子类UIButton就像这样:

MyButton.h

 @interface MyButton : UIButton { NSString *_linkUrl; } @property (nonatomic, retain) NSString *linkUrl 

MyButton.m

 @implementation MyButton @synthesize linkUrl = _linkUrl 

通过linkUrl:

 NSString *linkUrl = [NSString stringWithFormat:@"%@",[AllrecordG objectForKey:@"Link"]]; [leftLabelG addTarget:self action:@selector(clickMe:) forControlEvents:UIControlEventTouchUpInside]; [leftLabelG setLinkUrl:linkUrl]; 

现在你可以在你的动作中获得linkUrl:

 -(void)clickMe:(MyButton *)sender{ NSString *url = sender.linkUrl; } 

把你的linkurl在一个NSArray;

 NSArray *linkUrls = [NSArray arratWithObjects:@"link",@"blah",@"blah"........,nil]; 

然后设置一个标签到你的button作为数组中的索引

 leftLabelG.tag = 1; rightLabelG.tag = 2; -(void)clickMe:(UIButton *)sender{ NSString *url = [linkUrls objectAtIndex:sender.tag]; } 

使用一个类别

 - (void)addTarget:(id)target action:(SEL)action withObject:(id)object forControlEvents:(UIControlEvents)controlEvents; -(void)addTarget:(id)target action:(SEL)action withObject:(id)object1 withObject:(id)object2 forControlEvents:(UIControlEvents)controlEvents { SEL action_ = [self generateAction:action withObject:object1 withObject:object2]; IMP impl = imp_implementationWithBlock(^(id self_) { objc_msgSend(self_, action, self, [object1 copy], [object2 copy]); }); class_replaceMethod([target class], action_, impl, "v@:@"); [self addTarget:target action:action_ forControlEvents:controlEvents]; 

}