Tôi có một dự án mới nơi tôi muốn hiển thị Công cụ chọn người, khi một nút được chạm vào.Hiển thị ABPeoplePickerNavigationController bằng cách sử dụng phân đoạn bảng phân cảnh
Vì vậy, tôi có một số UIButton
phân cách thành số chung UIViewController
với số nhận dạng showContacts
. Tôi đặt lớp của ViewController này thành ABPeoplePickerNavigationController
.
Bây giờ trong ViewController gốc của tôi, tôi có mã này để khởi tạo bảng chọn của tôi:
#pragma mark - Segues
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showContacts"]){
ABPeoplePickerNavigationController *ppnc = segue.destinationViewController;
ppnc.peoplePickerDelegate = self;
ppnc.addressBook = ABAddressBookCreate();
ppnc.displayedProperties = [NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonPhoneProperty]];
}
}
Mặc dù tôi đã thêm vào danh bạ thử nghiệm để Sổ địa chỉ Simulator của tôi kết quả sẽ như thế này:
no picker http://i.minus.com/jbwUQyLr36ChHo.png
Với mã sau, rất giống với mã tôi làm theo phương pháp prepareForSegue:
, tôi quản lý để hiển thị công cụ chọn qua một số IBAction
:
- (IBAction)showPicker:(id)sender {
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
NSArray *displayedItems = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonPhoneProperty],
[NSNumber numberWithInt:kABPersonEmailProperty],
[NSNumber numberWithInt:kABPersonBirthdayProperty], nil];
picker.displayedProperties = displayedItems;
// Show the picker
[self presentModalViewController:picker animated:YES];
}
Kết quả:
picker http://i.minus.com/jeEVeIBmfIYdR.png
Nó không phải là rõ ràng với tôi lý do tại sao chọn dân không hiển thị.