我正在尝试复制iPhone的默认行为,以便为现有联系人添加电话号码。为了澄清,我说的是UI,而不是以编程方式。
我的第一次尝试是提出ABPeoplePickerNavigationController
,当用户选择一个人时,向所选人提出ABNewPersonViewController
。此方法的问题在于,如果用户点击取消按钮,则会从地址簿中删除该联系人。
答案 0 :(得分:3)
您应该实施peoplePickerNavigationControllerDidCancel:
委托方法(根据需要),如果需要,您可以将人员保存回来。
处理它的一种(可能更好的)方法是复制地址簿,用副本提供ABPeoplePickerNavigationController
,然后当UI完成时,你会知道你是否应该保留原文(如果有人因意外而被删除?)或将其替换为附加信息的副本。希望这可以帮助!另外,请查看Apple的QuickContacts示例代码here!
编辑如何复制地址簿的人员阵列:
// Fetch the address book
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *copy = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook)
另一个编辑:在开发人员指南中开始的一个好地方是ABAddressBook docs here