Rahul
Rahul

Reputation: 961

Function not call when button click

i have create a UIBUtton

editButton = [[UIButton alloc]initWithFrame:CGRectMake(width, -4, 30, 30)];
        [editButton setImage:[UIImage imageNamed:@"DeleteButton.jpg"] forState:UIControlStateNormal];
        [editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];
        editButton.hidden = YES;
        [editButton setTag:tag];
        [backView addSubview:editButton];

But control not jump to its definition where i check if button give its tag value on click or not.

-

(void)deleteObjectViewImage
{

    NSInteger index = editButton.tag;
    editButton.hidden = YES;
}

Can anyone tell me why it not work please.

Upvotes: 0

Views: 454

Answers (4)

visakh7
visakh7

Reputation: 26400

Try this

editButton = [[UIButton alloc]initWithFrame:CGRectMake(width, -4, 30, 30)];
[editButton setImage:[UIImage imageNamed:@"DeleteButton.jpg"] forState:UIControlStateNormal];
[editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];
editButton.hidden = YES;
[editButton setTag:tag];
[backView addSubview:editButton];


- (void)deleteObjectViewImage:(id)sender
{

    UIButton *button = (UIButton *)sender;
    NSLog(@"Button tag is %d",button.tag);
    button.hidden = YES;
}

Upvotes: 0

Mehul Mistri
Mehul Mistri

Reputation: 15147

For getting Tag Value you have to write this code in Button Click event...

 -(IBAction)deleteObjectViewImage:(id)sender
 {
      UIButton *btn = (UIButton *)sender;
      NSLog(@"%d",btn.tag);
 }

Don't remove colon from

 [editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];

Upvotes: 0

user745098
user745098

Reputation:

[editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];

expects the function deleteObjectViewImage: to have one argument. But the function definition doesnt has any.

UPDATE:

-(void)deleteObjectViewImage: (id) sender
    {
    UIButton *clickedButton = (UIButton *) sender;
        NSInteger index = clickedButton.tag;
        editButton.hidden = YES;
    }

and use

[editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];

Upvotes: 1

Use this line instead of line in your code (colon removed after function name),

 [editButton addTarget:self action:@selector(deleteObjectViewImage) forControlEvents:UIControlEventTouchUpInside];

Upvotes: 1

Related Questions