每个分段控制段的不同按钮操作

时间:2013-10-14 19:33:52

标签: objective-c ios7 xcode5

我有一个按钮,当我选择3个分段控件时,我想执行不同的代码。 EX)如果选择了segment1,按下按钮时将执行Code1。如果选择了segment2,则在按下按钮时将执行Code2。我之前没有使用过Segmented Controls,有人知道怎么做吗?

3 个答案:

答案 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
}

}