2012-02-25 4 views
1

私は連絡先の名前をクリックしてそこから連絡先情報を取得しようとしています。連絡先の情報をクリックしてそこからフィールドをクリックするのではなく、peoplePickerNavigationControllerは実際の連絡先名のクリックを受け取ります

私は連絡先をクリックした後で、必要なすべてのデータを取得できます。ここに私の現在のコードは次のとおりです。

-(IBAction)buttonPressed:(id)sender 
{ 
    ABPeoplePickerNavigationController *picker =[[ABPeoplePickerNavigationController alloc] init]; 
picker.peoplePickerDelegate = self; 
[self presentModalViewController:picker animated:YES]; 
} 

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker 
     shouldContinueAfterSelectingPerson:(ABRecordRef)person 
     property:(ABPropertyID)property 
     identifier:(ABMultiValueIdentifier)identifier 
{ 
    [self displayPerson:person]; 

    [self dismissModalViewControllerAnimated:YES]; 

    return YES; 
} 

-(void)displayPerson:(ABRecordRef)person 
{ 
    NSString *name = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty); 

    NSLog(@"Name: %@", name); 

    NSString *phone = nil; 

    ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty); 

    if (ABMultiValueGetCount(phoneNumbers) > 0) { 

     phone = (__bridge_transfer NSString *) 

     ABMultiValueCopyValueAtIndex(phoneNumbers, 0); 

    } else { 

     phone = @"[None]"; 

    } 

    NSLog(@"Phone: %@", phone); 
} 

- (void)peoplePickerNavigationControllerDidCancel: (ABPeoplePickerNavigationController *)peoplePicker 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

答えて

1

単にshouldContinueAfterSelectingPersonNOを返します。 docsによると

戻り値:連絡先を表示し、ピッカーを却下する
YES。
いいえ何もしません。

NOを返すことで、表示手順をスキップします。とにかく自分でピッカーを解雇しています。

+0

私はこれを試していますが、変更はありません。電子メールフィールドをクリックするまで(たとえば)、それはまだ解消されません。 – TheTC

+0

それはうまくいくはずです。変更されたコードを投稿してください。 –

0

私が使っていた:

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier; 

しかし、私は次のように使用された場合、それだけで正常に動作します。それが私にナットをもたらしました。 lol

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person; 
関連する問題