5

コードを介して動的に作成される10個のボタンがあり、クリックすると、対応するボタンごとに特定のURLが割り当てられるため、URLスルーボタンアクションを渡したいと思います。これが私のコードです

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

-(void)clickMe:(UIButton *)sender{
}

しかし、ここでは「未使用の変数linkUrl」として警告が表示されます。

私はさまざまな記事を研究しましたが、誰かがそれをリンクする議論を渡すことは不可能であると言いました。ボタンアクションごとにURLを渡す方法と、それらの値を取得する方法を教えてください。clickMe定義で。

前もって感謝します。

4

3 に答える 3

11

そのような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;
}
于 2012-05-14T08:13:44.693 に答える
2

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];
}
于 2012-05-14T08:26:10.930 に答える