2011-03-01 45 views
0

我想设置突出显示的段而不调用指定的功能。设置UISegmentedControl的高亮

我打电话

segmentedControlLeft.selectedSegmentIndex = 1; 

,对于segmentedControl运作良好,但它产生UIControlEventValueChanged以及它调用我的连接功能,我倒是希望避免再次打来电话。

是可能的吗?

谢谢!

回答

1

移除目标,更改选定的细分并再次添加目标。或者您是否使用某个变量来标记您已通过代码进行了修改,并且如果设置了此标志,请在您的函数中忽略此调用并重置您的标志。

2

见我question

这是一个已知的问题。 ID#8372405

您必须在使用setSelectedSegmentIndex之前使用您设置的布尔值,并在设置选定索引后取消设置。检查你的行动中的布尔。

这就是我所做的。

1

我现在做到了这样,它的工作原理

[segmentedControlLeft removeTarget:self action:@selector(segmentActionZoom:) forControlEvents:UIControlEventValueChanged]; 
segmentedControlLeft.selectedSegmentIndex = value; 
[segmentedControlLeft addTarget:self action:@selector(segmentActionZoom:) forControlEvents:UIControlEventValueChanged];