0

私の目標は、ユーザーが連絡先から連絡先の詳細 (電話、名前、電子メール) をインポートできるようにすることです。ABPeoplePickerNavigationController をセットアップし、デリゲートを自己に設定すると、デリゲート メソッドが呼び出されません。ピープルピッカービューが表示されています これが私のコードです:

-(IBAction)importFromContacts:(id)sender
{

    ABPeoplePickerNavigationController *newNavController = [[ABPeoplePickerNavigationController alloc] init];
    newNavController.delegate = self;
    [self presentViewController:newNavController animated:YES completion:nil];

}

-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
{
    NSLog(@"cancel");
    [self dismissViewControllerAnimated:YES completion:nil];
}

私は何が欠けていますか?クラス ABPeoplePicker はもはや UIAddressBook フレームワークの一部ではないようだということも付け加えたいと思います。ドキュメントにもありません。

4

2 に答える 2

5

delegateUINavigationController のデリゲート メソッドを処理する必要があるオブジェクトを記述する を設定しています。

変化する

newNavController.delegate = self;

newNavController.peoplePickerDelegate = self;

(クラス リファレンスで説明されているように、ABPeoplePickerNavigationController は UINavigationController のサブクラスです。同じクラス内であっても、オブジェクトが複数のデリゲートを持つことは異常ではありません。)

于 2013-12-07T03:43:32.107 に答える