我想通过按钮操作传递一个 url,因为我有 10 个按钮,这些按钮是通过代码动态创建的,单击后为每个相应的按钮分配一个特定的 URL。这是我的代码
NSString *linkUrl = [NSString stringWithFormat:@"%@",[AllrecordG objectForKey:@"Link"]];
[leftLabelG addTarget:self action:@selector(clickMe:linkUrl:) forControlEvents:UIControlEventTouchUpInside];
-(void)clickMe:(UIButton *)sender{
}
但在这里我收到警告为"未使用的变量链接URL"。
我研究了不同的文章,但有人告诉他们不可能通过论证链接。任何人都可以告诉我,我如何为每个按钮操作传递 url 以及如何检索这些值。在单击我定义中。
提前谢谢。
子类UIButton是这样的:
MyButton.h
@interface MyButton : UIButton
{
NSString *_linkUrl;
}
@property (nonatomic, retain) NSString *linkUrl
我的按钮
@implementation MyButton
@synthesize linkUrl = _linkUrl
传递链接网址:
NSString *linkUrl = [NSString stringWithFormat:@"%@",[AllrecordG objectForKey:@"Link"]];
[leftLabelG addTarget:self action:@selector(clickMe:) forControlEvents:UIControlEventTouchUpInside];
[leftLabelG setLinkUrl:linkUrl];
现在,您可以在操作中获取链接URL,如下所示:
-(void)clickMe:(MyButton *)sender{
NSString *url = sender.linkUrl;
}
把你的链接网址放在 NSArray 中;
NSArray *linkUrls = [NSArray arratWithObjects:@"link",@"blah",@"blah"........,nil];
然后将按钮的标签设置为数组中的索引,然后
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];
}