как решить ContactUI с iOS16 без кнопок отмены и готовности

У меня небольшая проблема с ContactsUI в моем приложении. В iOS 16, когда я хочу добавить контакт, нет кнопки «Отмена» и «Готово». У кого-нибудь есть идея, как это решить? Я прикрепил код и скрин

      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
    }
  }
}

0 ответов

Другие вопросы по тегам