我有一个按钮,当我选择3个分段控件时,我想执行不同的代码。 EX)如果选择了segment1,按下按钮时将执行Code1。如果选择了segment2,则在按下按钮时将执行Code2。我之前没有使用过Segmented Controls,有人知道怎么做吗?
答案 0 :(得分:6)
假设您的按钮上有目标操作设置,而您的分段控件有IBOutlet,您可以执行以下操作。
- (IBAction)buttonPressed:(UIButton *)sender
{
NSInteger selectedIndex = self.segmentedControl.selectedSegmentIndex;
switch(selectedIndex)
{
case 1: [self methodOne]; break;
case 2: [self methodTwo]; break;
case 3: [self methodThree]; break;
default : break; //Do nothing
}
}
答案 1 :(得分:1)
以一种非常简单的方式做: - 如果你已经采取了segmentcontrol的出口,那么就像下面那样: -
NSInteger sel=[yourSegmentCntrl
selectedSegment];
If (sel==1)
{
//write your code
}
答案 2 :(得分:0)
由于我最近正在研究这个问题,我想我会添加另一个答案,可以帮助Swift人员过渡到Obj-C。这有点明确,与我们在Swift中看到的IBOutlets相匹配。
- (IBAction)segmentedControlAction:(id)sender {
// This property can be a simple primitive. No need for an NSObject like NSInteger.
int selectedIndex = self.segmentedControlOutlet.selectedSegmentIndex;
switch(selectedIndex)
{
// Simply changing output to label
case 0: self.label.text = @"Segment 1 was selected";
break;
case 1: self.label.text = @"Segment 2 was selected";
break;
case 2: self.label.text = @"Segment 3 was selected";
break;
case 3: self.label.text = @"Segment 4 was selected";
break;
default : break; //Do nothing
}
}