連絡先フレームワークを使用してユーザーの連絡先の名前、番号、電子メール、連絡先イメージを取得すると、データが取得されます。私が今表示できるのは、テーブルビューのキーの1つだけです。名前や電子メールのように、名前をクリックさせてから、他のビューコントローラーとセグをして残りのプロパティを表示したいアップ。私は他のviewController
にそれを表示するのに問題があります。私はcontacts
をフェッチするために使用していたコードを動作していないようでした、prepareforsegue
機能でGET接点方式を使用してみましたが、私は私のコメントで言ったように、別のViewControllerで連絡先情報をセグを表示
func getContacts() {
let store = CNContactStore()
if CNContactStore.authorizationStatusForEntityType(.Contacts) == .NotDetermined {
store.requestAccessForEntityType(.Contacts, completionHandler: { (authorized: Bool, error: NSError?) -> Void in
if authorized {
self.retrieveContactsWithStore(store)
}
})
} else if CNContactStore.authorizationStatusForEntityType(.Contacts) == .Authorized {
self.retrieveContactsWithStore(store)
}
tableView.reloadData()
}
func retrieveContactsWithStore(store: CNContactStore) {
do {
let groups = try store.groupsMatchingPredicate(nil)
// let predicate = CNContact.predicateForContactsInGroupWithIdentifier(groups[0].identifier)
let containerId = CNContactStore().defaultContainerIdentifier()
let predicate: NSPredicate = CNContact.predicateForContactsInContainerWithIdentifier(containerId)
let keysToFetch = [CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName), CNContactEmailAddressesKey, CNContactPhoneNumbersKey,CNContactImageDataAvailableKey,CNContactThumbnailImageDataKey]
print(CNContactEmailAddressesKey.capitalizedString)
let contacts = try store.unifiedContactsMatchingPredicate(predicate, keysToFetch: keysToFetch)
self.objects = contacts
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.tableView.reloadData()
})
} catch {
print(error)
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let identifier = segue.identifier {
if identifier == "DetailContact" {
}
}
}
どこ 'prepareForSegue'方法はありますか? – Harsh
他のView Controllerでプロパティを追加し、選択した連絡先をprepareToSegueに渡すことができます。連絡先を再度取得する必要はありません。 – Harsh
が追加されました!今そこに – nkz