1

uibutton の押下時のタグを指定のメソッドに渡したいのですが、これをしようとするとエラーメッセージが表示されます。助けてください。コード:

   UIButton *deleteButton  = [[UIButton alloc]initWithFrame:CGRectMake(230, dateLabel.frame.origin.y, 70, 27)];
    [deleteButton addTarget:self action:@selector(deleteButtonPressed:i) forControlEvents:UIControlEventTouchDown];
    [deleteButton setBackgroundImage:[UIImage imageNamed:@"delete.jpg"] forState:UIControlStateNormal];
    [deleteButton setTag:i];

その後

    -(void)deleteButtonPressed:(int)tag
{
    NSLog(@"Button Pressed");
    NSLog(@"%i", tag);


}
4

2 に答える 2

1

イベント ハンドラーはタグを単独で渡すのではなく、ボタン全体を渡します。

UIButton *deleteButton  = [[UIButton alloc]initWithFrame:CGRectMake(230, dateLabel.frame.origin.y, 70, 27)];
[deleteButton addTarget:self action:@selector(deleteButtonPressed:) forControlEvents:UIControlEventTouchDown];
[deleteButton setBackgroundImage:[UIImage imageNamed:@"delete.jpg"] forState:UIControlStateNormal];
[deleteButton setTag:i];

これで、次のように渡されたボタンからタグを取得できます。

-(void)deleteButtonPressed:(UIButton*)button {
    NSLog(@"Button Pressed, tag=%i", button.tag);
}
于 2013-08-14T01:00:12.907 に答える
0

@selector に引数を渡すことはできません。@selector(deleteButtonPressed:) にする必要があります。

次に、アクション メソッドで:

    -(void)deleteButtonPressed:(UIButton *) sender
{
    NSLog(@"Button Pressed");
    NSLog(@"%d", sender.tag);


}
于 2013-08-14T01:00:23.007 に答える