我知道没有UISegementcontrol的委托方法,但是当取消选择segementcontrol按钮并且需要知道取消选择哪个段时,我需要触发委托方法。
我将如何做到这一点?
答案 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 ...
}