CNContactPickerViewController - 不能做任何选择

问题描述 投票:0回答:2

我使用CNContactPickerViewControllerto允许用户看到他们的联系人列表,然后选择一个联系人。然而,尽管我可以向他们展示自己的联系人列表,没有选择任何接触的能力。我只想找他们选择一个联系人。在名称列表中没有选择挖掘,如果你点击一个人,你会得到他们的联系卡。没有什么,屏幕,使他们要么挑接触上。所以网,我可以向他们展示他们的接触,但他们无法选择任何人。我已经试过这两个模拟器和实际设备上。

下面是我创建的用于处理什么应该是一个简单的过程类:

import Foundation
import ContactsUI

class ContactsController: NSObject, CNContactPickerDelegate {

    private var parentController:UIViewController!

    init(parentController:UIViewController) {
        super.init()
        self.parentController = parentController
        openContactList()
    }

    private func openContactList() {
        let picker = CNContactPickerViewController()
        picker.delegate = self
        picker.displayedPropertyKeys = [CNContactPhoneNumbersKey]
        self.parentController.present(picker, animated: true)
    }

    func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) {
        print("\(contact.givenName) \(contact.familyName): \(contact.phoneNumbers.first)")
    }
}

作为一个更新,我实现:

func contactPickerDidCancel(_ picker: CNContactPickerViewController) {
    print("Canceled")
}

这种方法不会被调用。我的假设是,什么是错与delegate.Incidentally,我做的下面的实例移动到一流水平的情况下,这是走出去的范围。这并没有帮助:

让选择器= CNContactPickerViewController()

swift cncontact cncontactpicker
2个回答
0
投票

问题是,我的代表是走出去的范围。这个问题是不是在我贴在我的OP类。我打电话从IBAction这个类在UITableViewCell这是走出去的范围因此该类丢失。抱着我ContactsController变量从调用类的类层次,解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.