这就是发生的事情,“男性”是主要的,所以它仍然被选中,当我选择“女性”时会发生这种情况,请告诉我为什么男性不会取消选择?
这就是我所做的连接段控制器为IBOutlet
:
@property (weak, nonatomic) IBOutlet UISegmentedControl *genderSelection;
然后在viewDidLoad
:
[
self.genderSelection addTarget:self action:@selector(MySegmentControlAction:) forControlEvents: UIControlEventValueChanged];
- (void)MySegmentControlAction:(UISegmentedControl *)segment
{
if(segment.selectedSegmentIndex == 0)
{
// code for the first button
NSLog(@"MALE");
}
else if(segment.selectedSegmentIndex == 1)
{
NSLog(@"Female");
}
这是我的属性检查员:
答案 0 :(得分:1)
您必须在选择中取消选择其他细分"如果"。
所以
- (void)MySegmentControlAction:(UISegmentedControl *)segment
{
if(segment.selectedSegmentIndex == 0)
{
//You can use segment.selectedSegmentIndex = 0; instead
[segment setSelectedSegmentIndex:0];
// code for the first button
NSLog(@"MALE");
}
else if(segment.selectedSegmentIndex == 1)
{
//You can use segment.selectedSegmentIndex = 1; instead
[segment setSelectedSegmentIndex:1];
NSLog(@"Female");
}
所以你可以在0和0之间切换1无限期。
如果您使用更有活力的选择,甚至可能会更好,正如Mrunal
所建议的那样[segment setSelectedSegmentIndex:segment.selectedSegmentIndex];
答案 1 :(得分:0)
只需取消选择else If
中的第一个:
if(segment.selectedSegmentIndex == 0)
{
// code for the first button
NSLog(@"MALE");
}
else if(segment.selectedSegmentIndex == 1)
{
NSLog(@"Female");
[segment setSelectedSegmentIndex:1];
}
答案 2 :(得分:-1)
- (void)MySegmentControlAction:(UISegmentedControl *)segment
{
if(segment.selectedSegmentIndex == 0)
{
NSLog(@"MALE");
}
else if(segment.selectedSegmentIndex == 1)
{
segment.selectedSegmentIndex=1; // this will make female selected.
}
}