Swift CNContactPickerViewController-无法进行任何选择

Swift CNContactPickerViewController-无法进行任何选择,swift,cncontact,cncontactpicker,Swift,Cncontact,Cncontactpicker,我正在使用CNContactPickerViewController允许用户查看他们的联系人列表并选择联系人。但是,尽管我可以向他们显示联系人列表,但无法选择任何联系人。我只想让他们选择一个联系人。在姓名列表中没有可点击的选择器,如果您点击一个人,您将获得他们的联系卡。屏幕上也没有允许他们选择联系人的内容。因此,我可以向他们显示他们的联系人,但他们不能选择任何人。我在模拟器和实际设备上都试过了 下面是我创建的用于处理简单流程的类: import Foundation import Contact

我正在使用
CNContactPickerViewController
允许用户查看他们的联系人列表并选择联系人。但是,尽管我可以向他们显示联系人列表,但无法选择任何联系人。我只想让他们选择一个联系人。在姓名列表中没有可点击的选择器,如果您点击一个人,您将获得他们的联系卡。屏幕上也没有允许他们选择联系人的内容。因此,我可以向他们显示他们的联系人,但他们不能选择任何人。我在模拟器和实际设备上都试过了

下面是我创建的用于处理简单流程的类:

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")
}
永远不会调用此方法。我的假设是委托出了问题。顺便说一下,我确实将下面的实例化移到了类级别,以防它超出范围。这无助于:

让选择器=CNContactPickerViewController()


问题是我的代表超出了范围。问题不在我在OP中发布的类中。我是从
UITableViewCell
中的
iAction
调用该类的,该类超出了范围,因此该类丢失。在调用类的类级别上保持my
Contacts控制器变量
,解决了此问题