根据另一个UISegmentedControl的条件禁用UISegmentedControl

时间:2013-07-22 15:50:50

标签: ios uisegmentedcontrol

我有两个UISegmentedControl,其中一个我想用来启用/禁用另一个。我写了一个函数来处理这个如下:

   - (void)disableSegment2 {
    if ([_segment1 isEnabledForSegmentAtIndex:0] && [_segment1 isEnabledForSegmentAtIndex:2]) {
        _segment2.userInteractionEnabled = NO;
    } else if ([_segment1 isEnabledForSegmentAtIndex:1]) {
        _segment2.userInteractionEnabled = YES;
    }
}

当我从viewDidLoad调用此函数时,无论_segment1的条件如何,_segment2都保持禁用状态。有人能指出我在哪里错了吗? 谢谢。

2 个答案:

答案 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仅被称为一次。每次更新第一个段控件时都需要调用它。