2011-06-13 5 views
0

두 개의 다른 UIPicker보기가있는 앱을 만들고 싶습니다. 다른 변수를 모두 설정했지만 앱을 실행할 때 UIPicker와 동일한 정보를 얻을 수 있습니다. 서로 다른 배열을 가진 두 개의 다른 UIPicker를 갖는 올바른 방법은 무엇입니까?여러 개의 UIPicker 하나의 화면 사용

팁?

+0

둘 다 동일한 대리인을 사용하도록 설정되어 있습니까? 별도의 컨트롤을 다른 데이터로 채우려면 별도의 대리자가 필요합니다. –

+0

@ Gregory Hoerner는 둘 다 하나의 대리자를 사용할 수 있습니다. 어떤 메소드가 위임 메소드를 호출했는지 확인하기 만하면됩니다 (if 문 사용). –

+0

@WTP, 사과드립니다. 데이터 소스입니다. –

답변

1

간단하게 각 UIPicker에게 "태그"

pickerA.tag=0; 
pickerB.tag=1; 

등을 제공 한 후 데이터 소스 방법은 추가로 :

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { 

    NSInteger * numberOfComponents; 

    if(picker.tag==0){ 
      numberOfComponents = 3; 
    }else{ 
      numberOfComponents = 4; 
    } 

    return numberOfComponents; 
} 
+0

- (NSInteger) numberOfComponentsInPickerView : (UIPickerView *) pickerViewPort; { \t return 1; } – Brandon

+0

안녕하세요 저는 내 대답을 편집했습니다 – shannoga

0

그럼 당신이 가지고해야 2 uipicker 개체를 클래스의 인스턴스 변수로 .

uipicker 데이터 소스 및 위임 메소드에서 이러한 메소드가 호출되는 선택기를 확인한 다음 그에 따라 데이터를로드 할 수 있습니다.

그러나 uipicker 용 IBOutlet이 없다면 (xib에서 생성 한 경우) 태그를 사용하여 선택기를 식별하고 데이터를 적절하게로드하십시오.

+0

어디에 - (NSInteger) numberOfCompontsInPicker : ~, (void) pickerview : (UIPickerView) ....., - (NSInteger) pickerView :(UIPickervView *) ......, - (NSString *) pickerview : (UIPickerview *) ..... – Brandon

+0

클래스에서 ...... – Robin

관련 문제