2011-11-25 3 views

답변

2

각 세그먼트 컨트롤의 tag 속성을 다른 정수로 설정하십시오. 그런 다음 값이 변경 될 때 작업으로 설정 한 메서드에서 을 사용하여 tag 속성이 설정된 정수를 확인합니다.

3

애플 문서는 말한다 :

http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UISegmentedControl_Class/Reference/UISegmentedControl.html

당신은 아래 그림과 같이 상수 UIControlEventValueChanged를 사용하여 세그먼트 제어를위한 타겟 - 액션 메소드를 등록합니다.

[segmentedControl addTarget:self 
       action:@selector(action:) 
     forControlEvents:UIControlEventValueChanged]; 

그래서, 당신은 모든 세그먼트 제어를위한 조치를 등록해야합니다. 이러한 분할 컨트롤

1

지정이 다른 작업 : 그렇게하는 방법은 두 가지가 있습니다

[segmentedControl addTarget:self 
       action:@selector(action:) 
     forControlEvents:UIControlEventValueChanged]; 
11

.

  1. 는 모든 세그먼트 컨트롤의 태그를 사용하여 도청 제어 & 확인을 위해 동일한 작업을 추가 모든 세그먼트 제어
  2. 에 대해 서로 다른 작업을 추가합니다.

    [yourSegmentedControl addTarget:self action:@selector(segmentSwitch:) forControlEvents:UIControlEventValueChanged]; 
    


    - (IBAction)segmentSwitch:(id)sender 
    { 
        UISegmentedControl *segmentedControl = (UISegmentedControl *) sender; 
    
        if(segmentedControl.tag == someTag) 
        { 
         if(segmentedControl.selectedSegmentIndex == 1) 
         { 
          // your code 
         } 
         else if(segmentedControl.selectedSegmentIndex == 2) 
         { 
          // your code 
         } 
        } 
        else if(segmentedControl.tag == someTag) 
        { 
         if(segmentedControl.selectedSegmentIndex == 1) 
         { 
          // your code 
         } 
         else if(segmentedControl.selectedSegmentIndex == 2) 
         { 
          // your code 
         } 
        } 
    } 
    
2

당신은 세그먼트의 선택 모드를 사용할 수 있습니다

UISegmentedControl *tempSegment = sender; 
if ([tempSegment selectedSegmentIndex] == 0){ 
    //first Action 
} 
else if ([tempSegment selectedSegmentIndex] == 1){ 
    //second Action 

} 
-1

스위프트 버전 :

@IBAction func yourFunctionName(sender: UISegmentedControl) { 

     if (sender.selectedSegmentIndex == 0){//choice 1 

     }else{//choice 2 

    } 
} 
관련 문제