我對iOS開發非常新穎。所以,請儘可能準確和基本地做出迴應。如何告訴地址簿選擇器填寫哪些字段?
我有一個有兩個(此時 - 可能會有更多)的字段,每個字段旁邊都會有一個按鈕,允許用戶從iPad地址簿中選擇一個聯繫人並填寫相關字段和地址簿中的姓氏。
The example code I have拉去,我可以在聯繫人姓名填點。不過,我希望能夠點擊推薦人旁邊的「瀏覽聯繫人」按鈕,並使用相同的功能填寫名稱。我看到getContactName函數具有sender參數。所以,我可以很容易地判斷兩個按鈕(或其他人)中的哪一個被點擊。
但是,當我從地址簿中選擇,我怎麼知道在PeoplePickerNavigationController或fillContactName函數中點擊了哪個按鈕?
- (IBAction)getContactName:(id)sender {
ABPeoplePickerNavigationController *picker =
[[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
}
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
[self dismissModalViewControllerAnimated:YES];
}
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person {
[self fillContactName:person];
[self dismissModalViewControllerAnimated:YES];
return NO;
}
- (BOOL)peoplePickerNavigationController:
(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
{
return NO;
}
- (void)fillContactName:(ABRecordRef)person
{
NSString* firstName = (__bridge_transfer NSString*)ABRecordCopyValue(person,
kABPersonFirstNameProperty);
NSString *test = [firstName stringByAppendingString:@" "];
NSString* lastName = (__bridge_transfer NSString*)ABRecordCopyValue(person,
kABPersonLastNameProperty);
NSString *fullName = [test stringByAppendingString:lastName];
self.contactName.text = fullName;
}
在附註中,您確定不想使用「ABRecordCopyCompositeName()」函數而不是手動將姓和名放在一起嗎? – 2012-06-20 19:15:16