こんにちは、誰でもこれを手伝ってもらえますか? この件に関する以前の質問をたくさん見てきましたが、少し複雑に思えます。locationField と呼ばれる IBOutlet を持つテキスト フィールドに触れるとアニメーション化するピッカーをセットアップしたいと考えています。
ピッカーやツールバー、ボタンをストーリー ボードに追加したくないので、プログラムで行いたいと思います。
これまでのところ、私は持っています:
- (void)viewDidLoad
{
//populate picker arrays
locationPickerArray = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
actionSheet = [[UIActionSheet alloc] initWithTitle:@"" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
[actionSheet showInView:self.view];
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0,480,32)];
[pickerToolbar sizeToFit];
pickerToolbar.barStyle = UIBarStyleBlackTranslucent;
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonSystemItemCancel target:self action:@selector(cancel_clicked:)];
[barItems addObject:cancelBtn];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done_clicked:)];
[barItems addObject:doneBtn];
[pickerToolbar setItems:barItems animated:YES];
[actionSheet addSubview:pickerToolbar];
UIPickerView *picker = [[UIPickerView alloc] init];
picker.frame = CGRectMake(0, 44, 320, 216);
picker.delegate = self;
picker.dataSource = self;
picker.showsSelectionIndicator = YES;
[actionSheet addSubview:picker];
}
-(void)done_clicked:(id)sender
{
[actionSheet dismissWithClickedButtonIndex:0 animated:YES];
}
-(void)cancel_clicked:(id)sender
{
[actionSheet dismissWithClickedButtonIndex:0 animated:YES];
}
これについていくつか質問があります。クラッシュします:
*キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[DetailsScreenViewController numberOfComponentsInPickerView:]: 認識されないセレクターがインスタンス 0xb505be0 に送信されました'
これは何を意味するのでしょうか?
私の最後の質問は、以前に作成した ioutlet がクリックされたときに、このピッカーにデータを入力してポップアップに割り当てる方法です (場所フィールド)。
ありがとうございました