APAddressBook icon indicating copy to clipboard operation
APAddressBook copied to clipboard

How do I display an APContact using ABPersonViewController?

Open tomvanzummeren opened this issue 8 years ago • 3 comments

How do I display an APContact using ABPersonViewController?

Or can APAddressBook supply me with a built in controller? What are my options here? I just want to use some pre-built controller that shows me the details of a single APContact. Can this be done?

tomvanzummeren avatar Mar 27 '16 13:03 tomvanzummeren

Unfortunately, there are no any UI in 'APAddressBook' and it don't compatible with any out-of-the-box solutions like 'ABPersonViewController'

belkevich avatar Mar 28 '16 10:03 belkevich

I found a way to do it!

let apContact: APContact = ...

let recordId = ABRecordID(apContact.recordID.intValue)
let ab = ABAddressBookCreateWithOptions(nil, nil).takeRetainedValue()
let abRecord = ABAddressBookGetPersonWithRecordID(ab, recordId).takeUnretainedValue()

let controller = ABPersonViewController()
controller.displayedPerson = abRecord
navigationController?.pushViewController(controller, animated: true)

tomvanzummeren avatar Mar 28 '16 14:03 tomvanzummeren

Looks good!

belkevich avatar Mar 28 '16 14:03 belkevich