2011-05-24 106 views
3

我试图复制iPhone的默认行为以将电话号码添加到现有联系人。为了澄清,我正在谈论的用户界面,而不是编程。添加到现有联系人

我的第一次尝试是提出一个ABPeoplePickerNavigationController,并且当用户选择一个人时,向所选人呈现ABNewPersonViewController。这种方法的问题是,如果用户点击取消按钮,联系人将从地址簿中删除。

回答

3

您应该实施peoplePickerNavigationControllerDidCancel:委托方法(因为它是必需的),并且您可以在需要时将其保存回去。

一个(可能更好)的方式来处理它,将复制地址簿,提供ABPeoplePickerNavigationController副本,然后当用户界面完成后,你会知道你是否应该保留原来的(如果有人得到在事故中删除?)或将其替换为附加信息的副本。希望这可以帮助!另外,看看苹果的QuickContacts示例代码here

编辑为如何复制地址簿的人阵:

// Fetch the address book 
ABAddressBookRef addressBook = ABAddressBookCreate(); 
NSArray *copy = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook) 

另一个编辑:一个好的地方在开发者指南,这开始是ABAddressBook文档here

+0

你怎么可以复制地址书? – 2011-05-24 14:20:08

+0

我已经看了这个框架已经有一段时间了,你看过Apple的QuickContacts示例代码吗?我记得它很有用。编辑:我将复制代码添加到我原来的答案。 – 2011-05-24 14:37:11

+0

我在原始答案中添加了相当多的信息,其中包括指向ABAddressBook(地址簿工作的基础对象)的链接以及指向来自Apple的QuickContacts示例代码的链接。 – 2011-05-24 14:45:06

相关问题