我有两个UISegmentedControl,其中一个我想用来启用/禁用另一个。我写了一个函数来处理这个如下:
- (void)disableSegment2 {
if ([_segment1 isEnabledForSegmentAtIndex:0] && [_segment1 isEnabledForSegmentAtIndex:2]) {
_segment2.userInteractionEnabled = NO;
} else if ([_segment1 isEnabledForSegmentAtIndex:1]) {
_segment2.userInteractionEnabled = YES;
}
}
当我从viewDidLoad调用此函数时,无论_segment1的条件如何,_segment2都保持禁用状态。有人能指出我在哪里错了吗? 谢谢。
答案 0 :(得分:1)
请将条件更改为 -
- (void)disableSegment2 {
if ([_segment1 isEnabledForSegmentAtIndex:0] && [_segment1 isEnabledForSegmentAtIndex:2]) {
_segment2.userInteractionEnabled = NO;
}
else if (![_segment1 isEnabledForSegmentAtIndex:0] || ![_segment1 isEnabledForSegmentAtIndex:2]) {
_segment2.userInteractionEnabled = YES;
}
}
我认为它可以帮助您解决问题。
答案 1 :(得分:0)
在第一个控制器上使用IBAction,测试是否选择了> = 2个segmenet,禁用第二个分段控制。
现在设置它的方式,当视图加载时,此disableSegment2
仅被称为一次。每次更新第一个段控件时都需要调用它。