Jack BeNimble
Jack BeNimble

Reputation: 36723

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?

Upvotes: 12

Views: 20549

Answers (4)

thalacker
thalacker

Reputation: 2837

Swift 4


Within your function do the following:

btn1.isHidden = true

Upvotes: 0

Gabriel
Gabriel

Reputation: 3045

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.

Upvotes: 32

Wolfert
Wolfert

Reputation: 974

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.

Upvotes: 3

NJones
NJones

Reputation: 27157

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.

Upvotes: 4

Related Questions