【发布时间】:2020-02-07 15:07:15
【问题描述】:
您好,我正在尝试构建一个界面来列出所有联系人,就像 Contacts 和 Phone 应用程序一样,具有相同的 UI。到目前为止我尝试过的内容如下。基本上我尝试使用UIViewControllerRepresentable 从ContactsUI 实现CNContactPickerViewController。但是我得到的是一个空白的白页。
struct ContactsViewController: UIViewControllerRepresentable {
func makeUIViewController(context: UIViewControllerRepresentableContext<ContactsViewController>) -> CNContactPickerViewController {
let controller = CNContactPickerViewController()
controller.delegate = context.coordinator
controller.displayedPropertyKeys = [CNContactGivenNameKey]
return controller
}
func updateUIViewController(_ uiViewController: CNContactPickerViewController, context: UIViewControllerRepresentableContext<ContactsViewController>) {
print("updating")
}
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
class Coordinator: NSObject, CNContactPickerDelegate {
var parent: ContactsViewController
init(_ contactsViewController: ContactsViewController) {
self.parent = contactsViewController
}
}
}
还有 SwiftUI 文件;
struct ContactsView: View {
var body: some View {
ContactsViewController()
}
}
提醒一下,我在其他一些SwiftUI 文件中调用TabView 内部的ContactsView。所以我想在SwiftUIView 中显示联系人,这是TabView 的一部分。任何帮助将非常感激。
【问题讨论】:
标签: swift uiviewcontroller swiftui cncontactpicker contactsui