【发布时间】:2014-08-24 13:33:49
【问题描述】:
我知道 UISegementcontrol 没有委托方法,但我需要在取消选择 segementcontrol 按钮时触发委托方法,并且需要知道取消选择了哪个段。
我该怎么做呢?
【问题讨论】:
标签: xcode delegates ios8 uisegmentedcontrol
我知道 UISegementcontrol 没有委托方法,但我需要在取消选择 segementcontrol 按钮时触发委托方法,并且需要知道取消选择了哪个段。
我该怎么做呢?
【问题讨论】:
标签: xcode delegates ios8 uisegmentedcontrol
更改选定的段时,控件将发送其操作方法。您使用以下方法注册目标以接收操作方法:
[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 ...
}
【讨论】: