2009-04-20 19 views
21

Aynı viewController kullanarak aynı görünümde 2 ayrı toplayıcı oluşturmak istiyorum. Ancak bunlar için ayrı temsilci ve veri kaynağı nasıl ayarlayabilirim?Çoklu PickerViews?

Çalışmıyor gibi görünüyor. Aynı verilerle ortaya çıkıyorlar. Bunun üzerinde herhangi bir örnek kodunuz varsa çok takdir edilecektir.

Teşekkürler. veri kaynağına ve temsilci protokolleri hem her yöntem örneğin bir UIPickerView * parametreyi içeren

cevap

32

Not: aşağıda belirtilen şekilde bir iki örneği arasında ayrım kullanmak gerekir

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 

:

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

    if([pickerView isEqual: pickerOne]){ 
     // return the appropriate number of components, for instance 
     return 3; 
    } 

    if([pickerView isEqual: pickerTwo]){ 
     // return the appropriate number of components, for instance 
     return 4; 
    } 
} 
+0

sizin uygulama dosyasında Sonra

#define kPickerOne 0 #define kPickerTwo 1 

... teşekkürler .. tek sorun diyerek bir uyarı olsun "uyarı - Kontrol dışı boşluk fonksiyonun sonuna ulaşan" biliyor musunuz niye ya? –

+1

ahh .. Tamam, hiç bir şey döndürmeyecek olmasından kaynaklanıyordu, bu yüzden başka {ekleyin 0; } ve hata ortadan kayboldu ... Her ikinize tekrar teşekkürler ... İyi helt: D –

+0

Bu iki farklı UIPIckers'a farklı dizi değerlerini nasıl atayabilirim – MaheshBabu

15

Bunu yapmanın en basit yolu, seçicinin tag özelliğini kullanmaktır. Bunları genellikle okunabilirlik için başlıkta tanımlarım. Etiketi Interface Builder'da veya kodda ayarlayabilirsiniz. bu büyük işleri

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    if(pickerView.tag == kPickerOne) 
    { 
      // do something with picker one 
    } 
    else if(pickerView.tag == kPickerTwo) 
    { 
      // the other picker 
    } 
}