2014-11-20 3 views
0

5 개의 테이블이 있으며 각각에 대해 UIPickerView를 만들어야합니다.Differents 값이있는 다중 Pickerview

이렇게 만들었습니다.

4 가지 테이블을 사용하여 어떻게 할 수 있습니까? 이 코드를 4 부 복사해야합니까?

내가 UIPickerView를 만들려면 올바른 방법인지 잘 모르겠지만 확인 (또는 확인)을 원합니다. 이것이 내가 한 것입니다. (동료 인 코드를 초보자이기도합니다.)

이것이 올바른 방법입니다.

UIPickerViews 5를 사용하면 어떻게 적응합니까?

@property (nonatomic, strong) UITextField *pickerViewDossier; 

- (void)viewDidLoad { 
[super viewDidLoad]; 

self.pickerViewDossier = [[UITextField alloc] initWithFrame:CGRectZero]; 
[self.view addSubview:self.pickerViewDossier]; 

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)]; 
pickerView.showsSelectionIndicator = YES; 
pickerView.dataSource = self; 
pickerView.delegate = self; 

self.pickerViewDossier.inputView = pickerView; 

UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
toolBar.barStyle = UIBarStyleBlackOpaque; 

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Valider" style:UIBarButtonItemStyleDone target:self action:@selector(doneTouched:)]; 

UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Annuler" style:UIBarButtonItemStyleDone target:self action:@selector(cancelTouched:)]; 

[toolBar setItems:[NSArray arrayWithObjects:cancelButton, [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], doneButton, nil]]; 

self.pickerViewDossier.inputAccessoryView = toolBar; 

self.listeSuiviDossier = [NSArray arrayWithObjects:@"Vous-même", @"Un confrère",nil]; 
} 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
return 1; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
return listeSuiviDossier.count; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
NSString *titrePickerview = listeSuiviDossier[row]; 
return titrePickerview; 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
NSString *titrePickerview = listeSuiviDossier[row]; 
[suiviDossierBouton setTitle:titrePickerview forState:UIControlStateNormal]; 
} 

- (IBAction)suiviDossierAction:(id)sender { 
[self.pickerViewDossier becomeFirstResponder]; 
} 

- (void)cancelTouched:(UIBarButtonItem *)sender 
{ 
[self.pickerViewDossier resignFirstResponder]; 
[suiviDossierBouton setTitle:@"Sélectionnez" forState:UIControlStateNormal]; 
} 

- (void)doneTouched:(UIBarButtonItem *)sender 
{ 
[self.pickerViewDossier resignFirstResponder]; 
} 

답변

0

각 선택기에 대해 수행 할 작업을 선택할 수 있도록 선택기 용 태그를 사용하십시오. 예를 들어

:

당신이 선언되어 당신의 선택기 :

picker1.tag = 1 
picker2.tag = 2 

각 방법 :

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger) { 
    if(pickerView.tag == 1) // you can also use a switch 
    { 
      // picker 1 
    } 
    else if(pickerView.tag == 2) 
    { 
      // picker 2 
    } 
    else if(pickerView.tag == 3) 
    { 
      // picker 3 
    }  
    else if(pickerView.tag == 4) 
    { 
      // picker 4 
    } 
} 
+0

는 어떻게해야합니까이, 당신은 나에게 예를하십시오 줄 수하십시오 ? :) – Batman

+0

수정 된 답변보기 :) –

+0

Thnaks bro ':) 테스트 해 보겠습니다. – Batman