헤더는 지금 내가 관리하려고하는 것을 완전히 설명합니다. 간단히 말해, 나는 here에서 예를 좋아했습니다. 단 하나의 문제가 있습니다.이 예에서는 일반적인 UIPickerView 대신 UIDatePicker가 사용됩니다. 내 문제는 NSMutableArray에서 데이터로 내 UIPickerView를 입력 할 수 없다는 것입니다. 나는 '드럼'을 움직이게하는 세 가지 필수적인 방법을 사용하여 일반적인 방법으로 그것을 달성하려고 노력했다.버튼을 누를 때 UIPickerView가 표시됩니다.
이제 viewDidLoad : self.uiPickerViewData = [[NSMutableArray alloc] initWithObjects : @ "One", @ "Two", nil];
//when tapping on Set Quality button
- (IBAction)setQuality:(id)sender
{
actionSheet=[[UIActionSheet alloc]initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
[actionSheet setActionSheetStyle:UIActionSheetStyleDefault];
CGRect pickerFrame=CGRectMake(0, 44, 0, 0);
qualityPicker=[[UIPickerView alloc]initWithFrame:pickerFrame];
qualityPicker.delegate=self;
[actionSheet addSubview:qualityPicker];
[qualityPicker release];
UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, actionSheet.bounds.size.width, 44)];
[toolBar setBarStyle:UIBarStyleDefault];
[toolBar sizeToFit];
UIBarButtonItem *spacer=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *setButton=[[UIBarButtonItem alloc]initWithTitle:@"Set" style:UIBarButtonSystemItemCancel target:self action:@selector(setQualityIntoDB)];
UIBarButtonItem *cancelButton=[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonSystemItemCancel target:self action:@selector(cancel)];
[toolBar setItems:[NSArray arrayWithObjects:spacer,setButton,cancelButton, nil]animated:NO];
[spacer release];
[setButton release];
[cancelButton release];
[actionSheet addSubview:toolBar];
[toolBar release];
[actionSheet showInView:self.view];
[actionSheet setBounds:CGRectMake(0, 0, 320, 485)];
}
그리고 내가 예상 한 결과를 가져 오지 않은 필수품.
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)numberOfRowsInComponent:(NSInteger)component
{
return [uiPickerViewData count];
}
-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [uiPickerViewData objectAtIndex:row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
// Will be properly implemented later
DBAccess *access=[[DBAccess alloc]init];
[access closeDataBase];
[access release];
}
UIPickerView가 비어 있습니다. 문제가 어디 있니?
을 showPicker를 추가하고 ViewCo 때까지 메모리에 전체 방법이 배열을 오래 유지 컨트롤러가 출시 될 예정입니까? – NCFUSN
예. 배열의 크기에 따라 달라집니다. PickerController가있는보기 컨트롤러에 입력 할 때 할당 할 수 있습니다. 다시 가져올 때 놓을 수 있습니다. 죄송합니다 내 영어 .. –
그리고 그것이 작동하지 않는 경우 모든 구성 요소를 업데이 트하려고 ... [선택기 reloadAllComponents]; –