【问题标题】:How to detect which segmentcontrol was deselected如何检测取消选择哪个段控制
【发布时间】:2014-08-24 13:33:49
【问题描述】:

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

我该怎么做呢?

【问题讨论】:

    标签: xcode delegates ios8 uisegmentedcontrol


    【解决方案1】:

    更改选定的段时,控件将发送其操作方法。您使用以下方法注册目标以接收操作方法:

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

    当目标接收到action方法时,发送段控制将是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 ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多