2011-05-24 46 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