您好,我正在尝试构建一个列出所有联系人的界面,就像具有相同UI
的Contacts
和Phone
应用程序一样。到目前为止,我尝试过的内容如下。基本上,我尝试使用 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
。所以我想在 SwiftUI
View
中显示联系人,它是 TabView
的一部分。任何帮助将非常感激。
最佳答案
这里有两种解决方案:https://stackoverflow.com/a/57621666/8818408
(1) 有效,但在显示联系人列表之前会闪烁一个 View 。对用户来说不是很好的体验。
(2) 类作品。它还会在显示联系人列表之前闪烁一个 View 。它沿前导、尾随和底部边缘显示出意想不到的透明度和意想不到的颜色。这些也许可以解决。
关于swift - SwiftUI 中联系人应用程序的联系人列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60116066/