Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS / iPhone- Hiding one button when another is clicked

I have a settings view in my app which has a couple of buttons (actually UISwitches). If the "off" setting on one of the switches is selected, I'd like to hide the second switch immediately. Can this be done?

like image 416
Jack BeNimble Avatar asked Oct 18 '11 21:10

Jack BeNimble


3 Answers

IBOutlet UIButton *btn1;
IBOutlet UIButton *btn2;

write the above 2 lines in your .h file and set the outlets with XIB.

Now create a method called hideButton

-(IBAction)hideButton
{
       btn1.hidden = YES;
}

in XIB attach this method with btn2. So now when you click on btn2 it will hide btn1.

like image 121
Gabriel Avatar answered Oct 16 '22 16:10

Gabriel


Connect the two switches as outlets. lets say switch1 & switch2.

Connect this function to the valueChanged action.

- (IBAction)mySwitch1:(id)sender { 
    [switch2 setHidden:!(switch1.isOn)];
}

Now when switch1 is not on then switch2 will be hidden.

like image 4
NJones Avatar answered Oct 16 '22 17:10

NJones


Add a target to the first switch which on value change calls the instance of the second switch and hides it.

Add the target:

    [switch1 addTarget:self action:@selector(switchToggled:) forControlEvents: UIControlEventValueChanged];

Calls this method:

- (void) switchToggled:(UISwitch*)switch {
 if ([switch isOn]) switch2.hidden = YES;
 else switch2.hidden = NO;
}

NJones if statement is more effective though.

like image 3
Wolfert Avatar answered Oct 16 '22 17:10

Wolfert