0

こんにちは、連絡先をクリックするとABpeoplePicekrNavigationcontrollerに移動し、すべての連絡先をテーブルのリストの形式で表示するアプリを開発しています.しかし、すべての連絡先を選択して、何らかのアクションを実行したい. .

これが正しい質問かどうかわかりません.実際には、連絡先リスト全体を選択するたびに単一の連絡先情報を選択するのではなく、連絡先情報を次の画面に送信しようとしています.では、どうすればこれを行うことができますか??

スペースが単一のセルに収まらない場合でも、単一のセルで表示するように表示すると思いました.単一のセルを表示して、すべての連絡先情報を含む1つのセルを選択する方が送信する方がよい..

では、1 つの連絡先を選択するのではなく、すべての連絡先リストを選択する正しい方法を教えてください。以下は、連絡先リストにアクセスするために使用しているコードです。

- (IBAction)configureMyContact:(id)sender {
ABPeoplePickerNavigationController *peoplePicker = [[ABPeoplePickerNavigationController alloc] init];
peoplePicker.peoplePickerDelegate = self;
peoplePicker.navigationBar.topItem.title = NSLocalizedString(@"CHOOSE_CONTACT_TITLE", @"Defining my contact title.");
[self presentModalViewController:peoplePicker animated:YES];
[peoplePicker release];
}


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


- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker 
  shouldContinueAfterSelectingPerson:(ABRecordRef)person {

myContactID = ABRecordGetRecordID(person);
[self refreshMyContactButton];
[self saveMyContactID:myContactID];

[self dismissModalViewControllerAnimated:YES];

return NO;
}

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker 
  shouldContinueAfterSelectingPerson:(ABRecordRef)person
                            property:(ABPropertyID)property
                          identifier:(ABMultiValueIdentifier)identifier{
return NO;
}
4

1 に答える 1

0

これを使用してレコードを取得できます

- (void)getPersonOutOfAddressBook
{    
    ABAddressBookRef addressBook = ABAddressBookCreate();

    if (addressBook != nil)
    {
        NSLog(@"Succesful.");

        NSArray *allContacts = (__bridge_transfer NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

        NSUInteger i = 0;
        for (i = 0; i < [allContacts count]; i++)
        {            
            ABRecordRef contactPerson = (__bridge ABRecordRef)allContacts[i];



            NSString *firstName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);

            NSString *lastName =  (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);

            ABMultiValueRef mobile=ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);

            for (int k=0;k<ABMultiValueGetCount(mobile); k++)
            {
                NSString *mobileNo = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(mobile, k);
            }


            //email
            ABMultiValueRef emails = ABRecordCopyValue(contactPerson, kABPersonEmailProperty);

            NSUInteger j = 0;
            for (j = 0; j < ABMultiValueGetCount(emails); j++)
            {
                NSString *email = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(emails, j);
            }

        }
    }
    CFRelease(addressBook);
}
于 2013-05-29T13:44:45.647 に答える