2014-09-16 2 views
0

Я хочу создать форму и иметь несколько полей uitext, которые при отображении отображают различные uipickerviews. Мой код работает для одного uipickerview, но как я могу заставить его работать для нескольких просмотров.Несколько UIPickerView, выбранных из нескольких UITextFields

Вот мой код:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Date Field 
    UIDatePicker *datePicker = [[UIDatePicker alloc]init]; 
    //[datePicker setDate:[NSDate date]]; 
    datePicker.datePickerMode = UIDatePickerModeDate; 
    [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged]; 
    [self.dateField setInputView:datePicker]; 
    [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged]; 

    // Account Field 
    //Create Array of Accounts 
    accountArray = [[NSMutableArray alloc]init]; 
    objectArray = [[NSMutableArray alloc]init]; 
    PFQuery *query = [PFQuery queryWithClassName:@"Account"]; 
    [query whereKey:@"user" equalTo:[PFUser currentUser]]; 
    [query orderByDescending:@"startingBalance"]; 
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 

     for (PFObject *object in objects) { 
      [accountArray addObject:object[@"name"]]; 
      [objectArray addObject:[object objectId]]; 
      //NSLog(@"%@", [object objectId]); 
     } 
     accountPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 50, 100, 150)]; 
     //NSLog(@"%@", accountArray[0]); 
     accountPicker.showsSelectionIndicator = YES; 
     self.accountField.inputView = accountPicker; 
     for (NSString *obj in self.objectArray) { 
      NSLog(@"Inside string %@",obj); 
     } 
     accountPicker.delegate = self; 
    }]; 

    //Category Field 
    //Create Array of Accounts 
    categoryArray = [[NSMutableArray alloc]init]; 
    categoryObjectArray = [[NSMutableArray alloc]init]; 
    PFQuery *queryCategory = [PFQuery queryWithClassName:@"Category"]; 
    [queryCategory whereKey:@"user" equalTo:[PFUser currentUser]]; 
    [queryCategory orderByDescending:@"name"]; 
    [queryCategory findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 

     for (PFObject *object in objects) { 
      [categoryArray addObject:object[@"name"]]; 
      [categoryObjectArray addObject:[object objectId]]; 
      //NSLog(@"%@", [object objectId]); 
     } 
     categoryPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 50, 100, 150)]; 
     //NSLog(@"%@", accountArray[0]); 
     categoryPicker.showsSelectionIndicator = YES; 
     self.categoryField.inputView = categoryPicker; 
     for (NSString *obj in self.categoryObjectArray) { 
      NSLog(@"Inside string %@",obj); 
     } 
     categoryPicker.delegate = self; 
    }]; 


    for (NSString *obj in self.accountArray) { 
     NSLog(@"Outside Block%@",obj); 
    } 
} 

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

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

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

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    accountField.text = [accountArray objectAtIndex:row]; 
    number = [objectArray objectAtIndex:row]; 
} 

ответ

Смежные вопросы