この時点で、ヘッダーは完全に私が管理しようとしていることを説明しています。短いので、hereの例が好きだった。問題は1つだけです。この例では、通常のUIPickerViewではなくUIDatePickerが使用されています。私の問題は、NSMutableArrayからのデータで私のUIPickerViewを入力することができないということです。私は「ドラム」を走らせるために3つの重要な方法を使って一般的な方法でそれを達成しようとしました。ボタンをタップしたときに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が空になっています。問題はどこですか?
...あなたのボタンとhidePickerしたい何か他のもののためのアクションとしてのアクションとしてshowPickerを追加し、ViewCoまで、全体の方法長いメモリにこの配列を保ちますコントローラが解放されますか? – NCFUSN
はい。それは配列の大きさに依存します。PickerControllerが配置されているView Controllerに入力するときに割り当てることができます。私の英語で申し訳ありません.. –
、それが動作していない場合は、すべてのコンポーネントを更新しようとします... [Picker reloadAllComponents]; –