ボタンを押したときにピープルピッカーを表示する新しいプロジェクトがあります。ストーリーボードを使用してABPeoplePickerNavigationControllerを表示するsegue
したがってUIButton
は、UIViewController
という識別子とshowContacts
という一般名義になります。このViewControllerのクラスをABPeoplePickerNavigationController
に設定しました。
#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]];
}
}
私はシミュレータのアドレス帳に結果をテスト連絡先を追加したが、このようになります::
no picker http://i.minus.com/jbwUQyLr36ChHo.png
は今私のルートのViewControllerに私は私のピッカーを初期化するために、このコードを持っています
次のコードは、メソッドでの操作とよく似ていますが、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];
}
結果:
picker http://i.minus.com/jeEVeIBmfIYdR.png
人々ピッカーが表示されません。理由は私には明らかではありません。