I have the following UISegmentedControl, which I want to be disabled:
-(void)displayCheckMark
{
titleSegmentedControl = [[UISegmentedControl alloc] initWithItems:nil];
[titleSegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"symbolbg.png"] atIndex:0 animated:YES];
[titleSegmentedControl insertSegmentWithImage:[UIImage imageNamed:@"inwatchlist.png"] atIndex:1 animated:YES];
[titleSegmentedControl addTarget:self action:@selector(titleBarButtonChanged:)forControlEvents:UIControlEventValueChanged];
titleSegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
titleSegmentedControl.frame = CGRectMake(100,0,100,30);
titleSegmentedControl.momentary = YES;
titleSegmentedControl.tintColor = [UIColor blackColor];
self.navigationItem.titleView = titleSegmentedControl;
[titleSegmentedControl setWidth:60 forSegmentAtIndex:0];
[titleSegmentedControl setTitle:symbol forSegmentAtIndex:0];
[titleSegmentedControl setWidth:30 forSegmentAtIndex:1];
[titleSegmentedControl setEnabled:NO];
}
I don't have it enabled anywhere in the code. Yet I can still click on it, and it will perform the action in titleBarButtonChanged:
How can I make sure it can't be clicked?
Try using:
- (void)setEnabled:(BOOL)enabled forSegmentAtIndex:(NSUInteger)segment;
or
titleSegmentedControl.userInteractionEnabled = NO;
Within titleBarButtonChanged:(id)sender
add:
if(!sender.enabled) return;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With