2011-06-13 8 views
1

현재 내 앱에 UIPickerView이 있습니다. 사용자가 문자열을 입력 할 텍스트 상자가 있으며 그 문자열을 UIPickerView에 저장하여 다시 입력하는 대신 다시 되돌릴 수 있습니다.사용자 입력을 UIPickerView에 저장할 수 있습니까?

이제 배열에 텍스트가 들어 있지만 일단 프로그램이 실행되면이를 추가하는 방법을 알고 싶습니다.

답변

2

pickerArray가 데이터가 pickerView에 표시되는 배열 이름이라고 가정합니다.

당신이해야 할 일은 다음과 같습니다 - 나는 그것이 you.Happy 코딩 :

+0

감사합니다! 그것은 많은 도움이되었습니다! – Brandon

0

UIPickerDatasource 항목의 배열을 취할 수 귀하의 경우 데이터에 표시하는 데 도움이 될 것입니다 희망

(void)textFieldDidEndEditing:(UITextField *)textField 
{ 
[pickerArray addObject:textField.text]; 
[*yourPickerViewNmae* reloadAllCompononents]; 
} 

텍스트로 입력해야 할 필요가있을 때 동적이며, 그 다음에 피커 컨트롤에 입력해야합니다.

개체를 동적으로 추가하거나 제거 할 수있는 NSMutableArray이 있어야합니다. 그런 다음 추가 후 데이터를 다시로드하기 위해 reloadAllComponents 선택 도구의 메소드를 호출 할 수 있습니다.

1

1. 델리게이트 함수 내에서 UITextField의 델리게이트 함수를 사용하여 원하는 arry (NSMutable 배열 사용)에 텍스트를 추가합니다.

2

나는 그것을 수행하고 점검했다. 그것은 잘 작동합니다.

다음은 코드입니다.

#import "pickerViewController.h" 

@implementation pickerViewController 
@synthesize textfield,picker,pickerarray,btn; 
- (void)dealloc 
{ 
    [super dealloc]; 
    [picker release]; 
    [textfield release]; 
    [pickerarray release]; 
    [btn release]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    textfield.delegate=self; 
    picker.delegate=self; 
    picker.dataSource=self; 
    picker.showsSelectionIndicator=YES; 
    pickerarray=[[NSMutableArray alloc]init]; 

} 


-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 1; 
} 
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    return [pickerarray count]; 
} 

-(void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    textfield.delegate=self; 
    [pickerarray addObject:textField.text]; 

    [picker reloadAllComponents]; 

    NSLog(@"%@",pickerarray); 
} 

-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 


    return [pickerarray objectAtIndex:row]; 

} 
-(IBAction)killkeyBoard:(id)sender 
{ 
    [textfield resignFirstResponder]; 
} 
관련 문제