0

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

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

当我从 viewDidLoad 调用此函数时,无论 _segment1 的情况如何,_segment2 都保持禁用状态。有人可以指出我在这里出错的地方吗?谢谢。

4

2 回答 2

1

请把条件改成这个——

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

我认为它会帮助你解决你的问题。

于 2013-07-23T07:48:05.563 回答
0

对第一个控制器使用 IBAction,测试是否选择了 >= 2 个分段,禁用第二个分段控制。

您现在设置它的方式,disableSegment2仅在视图加载时调用一次。每次更新第一个段控件时都需要调用它。

于 2013-07-22T16:07:40.890 回答