Untuk alternatif yang menangani UIPickerView dan Action Sheets, periksa ActionSheetPicker
https://github.com/TimCinel/ActionSheetPicker
Ini cocoapods diaktifkan. Ini menangani semua tombol batal dan selesai pada Lembar Tindakan. Contoh dalam proyek sampel sangat bagus. Saya memilih ActionSheetStringPicker, yang menangani dengan mudah hanya opsi berbasis String, tetapi API dapat menangani hampir semua hal yang dapat saya pikirkan.
Saya awalnya memulai solusi seperti jawaban yang dicentang, tetapi tersandung ke proyek ini dan membutuhkan waktu sekitar 20 menit untuk mengintegrasikan hal-hal ke dalam aplikasi saya untuk digunakan termasuk menggunakan cocopods: ActionSheetPicker (~> 0.0)
Semoga ini membantu.
Unduh proyek git dan lihat kelas-kelas berikut:
- ActionSheetPickerViewController.m
- ActionSheetPickerCustomPickerDelegate.h
Berikut ini kira-kira sebagian besar kode yang saya tambahkan, ditambah impor * .h.
- (IBAction)gymTouched:(id)sender {
NSLog(@"gym touched");
[ActionSheetStringPicker showPickerWithTitle:@"Select a Gym" rows:self.locations initialSelection:self.selectedIndex target:self successAction:@selector(gymWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:sender];
}
- (void)actionPickerCancelled:(id)sender {
NSLog(@"Delegate has been informed that ActionSheetPicker was cancelled");
}
- (void)gymWasSelected:(NSNumber *)selectedIndex element:(id)element {
self.selectedIndex = [selectedIndex intValue];
//may have originated from textField or barButtonItem, use an IBOutlet instead of element
self.txtGym.text = [self.locations objectAtIndex:self.selectedIndex];
}
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return NO; // Hide both keyboard and blinking cursor.
}