我正在尝试复制 iPhone 为现有联系人添加电话号码的默认行为。澄清一下,我说的是 UI,而不是以编程方式。
我的第一次尝试是呈现一个 ABPeoplePickerNavigationController
,当用户选择一个人时,呈现一个包含所选人的 ABNewPersonViewController
。这种方法的问题在于,如果用户点击取消按钮,联系人就会从地址簿中删除。
最佳答案
您应该实现 peoplePickerNavigationControllerDidCancel:
委托(delegate)方法(因为它是必需的),如果需要,您可以将人员救回来。
一种(可能更好的)处理方法是复制地址簿,用副本显示一个 ABPeoplePickerNavigationController
,然后当 UI 完成时,您会知道是否应该保留原件(如果有人意外被删除?)或用添加信息的副本替换它。希望这可以帮助!另外,请查看 Apple 的 QuickContacts 示例代码 here !
编辑如何复制地址簿的人员数组:
// Fetch the address book
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *copy = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook)
另一个编辑:ABAddressBook 文档是开发者指南的一个很好的起点 here
关于iphone - 添加到现有联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6111215/