I have a little trouble with the ContactsUI in my app. With iOS 16 when I want add a contact there are not the cancel and done button. Have someone an idea how to solve it ? I have attached code and screen
import SwiftUI
import Foundation
import ContactsUI
struct EditInternalContactView: UIViewControllerRepresentable {
typealias UIViewControllerType = CNContactViewController
var contact: Binding<CNContact>
var presentingEditContact: Binding<Bool>
func makeCoordinator() -> EditInternalContactView.Coordinator {
Coordinator(self)
}
func makeUIViewController(context: UIViewControllerRepresentableContext<EditInternalContactView>) -> Self.UIViewControllerType {
let controller = CNContactViewController(forNewContact: contact.wrappedValue)
controller.delegate = context.coordinator
return controller
}
func updateUIViewController(
_ uiViewController: EditInternalContactView.UIViewControllerType,
context: UIViewControllerRepresentableContext<EditInternalContactView>) {}
}
extension EditInternalContactView {
final class Coordinator: NSObject, CNContactViewControllerDelegate {
var parent: EditInternalContactView
init(_ contactDetail: EditInternalContactView) {
self.parent = contactDetail
}
func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) {
parent.contact.wrappedValue = contact ?? parent.contact.wrappedValue
parent.presentingEditContact.wrappedValue = false
}
func contactViewController(_ viewController: CNContactViewController, shouldPerformDefaultActionFor property: CNContactProperty) -> Bool {
return true
}
}
}