5 つの静的セルを持つテーブル ビュー コントローラーがあり、次のように UIPicker を呼び出します。
#pragma mark PickerView DataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [self.cityNames count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [self.cityNames objectAtIndex:row];
}
#pragma mark PickerView Delegate
-(void)presentNewPicker{
UIActionSheet *aac = [[UIActionSheet alloc] initWithTitle:@"For which city?"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
self.pickrView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
self.pickrView.showsSelectionIndicator = YES;
self.pickrView.dataSource = self;
self.pickrView.delegate = self;
self.cityNames = [[NSArray alloc] initWithObjects: @"Akron", @"Indie", @"Springfield", @"Loria", @"Merida", nil];
UIToolbar *pickerDateToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerDateToolbar.barStyle = UIBarStyleBlackOpaque;
[pickerDateToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDoneClick)];
[barItems addObject:doneBtn];
[pickerDateToolbar setItems:barItems animated:YES];
[aac addSubview:pickerDateToolbar];
[aac addSubview:self.pickrView];
[aac showInView:self.view];
[aac setBounds:CGRectMake(0,0,320, 464)];
}
-(void) dismissActionSheet:(id)sender {
NSLog(@"dismissActionSheet");
UIActionSheet *actionSheet = (UIActionSheet *) ??? how do i get action sheet? :-);
[actionSheet dismissWithClickedButtonIndex:0 animated:YES];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
self.myCity.text = [self.cityNames objectAtIndex:row];
NSLog(@"city %@", self.myCity.text);
}
UIPicker が表示されますが、[完了] ボタンをクリックすると表示されますが、今すぐ閉じるにはどうすればよいですか? また、都市は null をログに記録しています。なぜなら、それらの都市でピッカーを初期化し、提示されるとそれらがピッカーに表示されるためです。