Mit Framework Contacts alle vorhandenen Kontakte laden und ausgeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mit Framework Contacts alle vorhandenen Kontakte laden und ausgeben

    Ich habe folgendes Problem:
    Meine App soll die Kontakte meines iPhones (bzw. erstmal des Simulators) laden und in eine Table View bringen.
    Ich habe die 'Contacts' API gefunden. (Contacts)
    Ich habe nun damit rumgespielt, es ist ja fast selbsterklärend wie man neue Kontakte erstellt, in die Zellen läd und anzeigt.
    Nun weiß ich aber nicht wie man die schon vorhandenen Kontakte läd, denn ich möchte sie laden und später weiterverarbeiten.

    Beispiel: Am Liebsten möchte ich das nur die Namen der Kontakte in die Zellen geladen werden und wenn ich sie antippe, das ich
    dann in die originale Telefonapp vom iPhone komme um die Kontaktdaten zu sehen und zu bearbeiten. Oben links wird dann ja immer angezeigt "Zurück zur alten App".
    Sozusagen will ich das echte Design der Kontakte wahren und das es in meiner App dann auch so aussieht wie die echten Zeilen mit den Kontaktnamen. (Man kann ich mich heute schlecht ausdrücken, also so als wenn ich auf die Telefonapp gehe und dann auf Kontakte)

    Ich hoffe ihr könnt mir helfen :) entweder liegt es an meinen nicht perfekten Englischkenntnissen oder sonst was.

    Mein Code:

    Quellcode: ContactResource.swift

    1. import Foundation
    2. import Contacts
    3. class ContactResource {
    4. // private let items = [CNContactEmailAddressesKey, CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName)]
    5. private let items = [CNContactStore]()
    6. func getContactItems() -> [CNContactStore] {
    7. return items
    8. }
    9. func getItem(forIndex index: Int) -> CNContactStore {
    10. return items[index]
    11. }
    12. }
    Alles anzeigen


    Quellcode: ContactViewController.swift

    1. import UIKit
    2. class ContactViewController: UITableViewController {
    3. lazy var contactResource = ContactResource()
    4. // MARK: - Table view data source
    5. override func numberOfSections(in tableView: UITableView) -> Int {
    6. // #warning Incomplete implementation, return the number of sections
    7. return 1
    8. }
    9. override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    10. // #warning Incomplete implementation, return the number of rows
    11. return contactResource.getContactItems().count
    12. }
    13. override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    14. let item = contactResource.getItem(forIndex: indexPath.row)
    15. let cell = tableView.dequeueReusableCell(withIdentifier: "contactCell", for: indexPath)
    16. cell.textLabel?.text = item.???????????????
    17. return cell
    18. }
    19. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Neytex ()