如何检测取消选择哪个段控件

时间:2014-08-24 02:25:50

标签: xcode delegates ios8 uisegmentedcontrol

我知道没有UISegementcontrol的委托方法,但是当取消选择segementcontrol按钮并且需要知道取消选择哪个段时,我需要触发委托方法。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

当更改所选分段时,控件将发送其动作方法。您使用以下命令注册目标以接收操作方法:

[segmentedControl addTarget:self
                     action:@selector(action:)
           forControlEvents:UIControlEventValueChanged];

当目标收到动作方法时,发送段控件将是sender参数。您可以通过查询其selectedSegmentIndex属性来了解新选择的细分。

没有直接的方法来学习以前选择的细分。你必须自己跟踪。你的控制器上有一个属性,比如lastKnownSelectedSegmentIndex。您可以通过查询段控件的selectedSegmentIndex来设置最初的视图加载时间。然后,当所选分段发生更改时,您可以查询该属性以了解取消选择哪个分段。您还需要使用新值更新该属性,以便下次更正。

- (IBAction) action:(UISegmentedControl)sender
{
    NSInteger deselectedSegmentIndex = self.lastKnownSelectedSegmentIndex;
    self.lastKnownSelectedSegmentIndex = sender.selectedSegmentIndex;

    // Now you can make decisions based on deselectedSegmentIndex and/or sender.selectedSegmentIndex ...
}