gpt4 book ai didi

swift - CNContactPickerViewController - 无法进行任何选择

转载 作者:行者123 更新时间:2023-11-30 10:51:08 24 4
gpt4 key购买 nike

我正在使用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")
}

这个方法永远不会被调用。我的假设是委托(delegate)有问题。顺便说一句,我确实将下面的实例化移到了类级别,以防它超出范围。这没有帮助:

let picker = CNContactPickerViewController()

最佳答案

问题是我的代表超出了范围。问题不在我在 OP 中发布的类(class)中。我从 UITableViewCell 中的 IBAction 调用此类,该类超出了范围,因此此类丢失了。在调用类的类级别保存我的ContactsController变量,解决了这个问题。

关于swift - CNContactPickerViewController - 无法进行任何选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54511702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com