使用两个UIButton进行分段控制,并为每个按钮将操作设置为action:@selector(segmentedControl:)
。
- (IBAction)segmentedControl:(id)sender {
BOOL activateSecond = _firstTab.selected;
_firstTab.selected = !activateSecond;
_secondTab.selected = activateSecond;
}
如果我点击活动按钮(现在活动状态跳转到另一个按钮),仍然存在的问题是如何解决。
答案 0 :(得分:2)
跟踪之前选择的按钮,然后您可以通过以下方式捕获新按钮:
- (IBAction)segmentedControl:(id)sender {
UISegmentedControl * myControl = (UISegmentedControl *) sender;
if(myControl.selectedSegmentIndex != previouslySelectedIndex)
{
// here the user has selected a new button, which becomes the active one
previouslySelectedIndex = myControl.selectedSegmentIndex;
} else {
// the user tapped on the active, previously selected button
}
}
当然,您需要初始化previousSelectedIndex以开始。
如果这个想法可以帮助你,请告诉我。
答案 1 :(得分:2)
我认为你可以使用标签属性。
将每个按钮的标签设置为数字。
然后,当您在segmentedControl方法中收到一个发送时,将其转换为UIButton并检查它的标记值。
- (IBAction)segmentedControl:(id)sender {
int buttonTag = ((UIButton*)sender).tag;
if(_firstTab.selected && buttonTag != 1){
_firstTab.selected = NO;
_secondTab.selected = YES;
}else if(_secondTab.selected && buttonTag != 2){
_firstTab.selected = YES;
_secondTab.selected = NO;
}
}