Several actions for one UIButton in iPhone

** When I click a button on my view, I want two text fields and another button (delete). If I press again, the repetition will be repeated up to 5 times. and if I clicked the delete button, then two text fields will be deleted, and under the text fields should be *

-(IBAction)addBusiness:(id)sender { txtprovName2 = [[UITextField alloc]init]; [txtprovName2 setFrame:CGRectMake(13, 410,94, 30)]; [txtprovName2 setBorderStyle:UITextBorderStyleRoundedRect]; [txtprovName2 setAutocorrectionType:UITextAutocorrectionTypeNo]; txtprovName2.textAlignment=UITextAlignmentCenter; txtprovName2.placeholder=@ ""; txtprovName2.font=[UIFont fontWithName:@"System" size:11]; [testscroll addSubview:txtprovName2]; txtprovEmail2 =[[UITextField alloc]init]; [txtprovEmail2 setFrame:CGRectMake(121, 410,92, 30)]; [txtprovEmail2 setBorderStyle:UITextBorderStyleRoundedRect]; [txtprovEmail2 setAutocorrectionType:UITextAutocorrectionTypeNo]; txtprovEmail2.textAlignment=UITextAlignmentCenter; txtprovEmail2.placeholder=@ ""; txtprovEmail2.font=[UIFont fontWithName:@"System" size:11]; [testscroll addSubview:txtprovEmail2]; btnRemove1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btnRemove1.frame = CGRectMake(220, 410,80, 30); [btnRemove1 setTitle:@"Remove" forState:UIControlStateNormal]; [btnRemove1.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]]; btnRemove1.titleLabel.textColor=[UIColor blackColor]; [btnRemove1 addTarget:self action:@selector(btnRemove1Clicked:) forControlEvents:UIControlEventTouchUpInside]; } 

how can I continue the re-action for the same button, thanks for the help

+4
source share
3 answers

You can use the button tag property; so inside your IBAction method

 - (IBAction)buttonClicked:(UIButton *)sender { if (sender.tag == 1) { // perform your 1st functionality button.tag = 2; //To perform 2nd functionality } else if (sender.tag == 2) { // perform your Second functionality button.tag = 3; //To perform 3rd functionality } else if (sender.tag == 3) { // perform your 3rd functionality button.tag = 1; // To perform 1st functionality } } 

EDIT:

enter image description here

+7
source

Just do it by tags. You will save a lot of memory and will work fine.

0
source

Or you can use these methods.

 - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; 

& use later

 - (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; 

This will solve your problem. I hope so.

0
source

All Articles