CNContactViewController

CNContactViewController

我有一个任务是在他出现的时候立即显示联系人编辑屏幕(比如WhatsApp),我向他展示下面的方法。

   @objc private func presentContactEditController() {
        guard var contact = contactModel.contact else { return }
        if !contact.areKeysAvailable([CNContactViewController.descriptorForRequiredKeys()]) {
            do {
                let contactStore = CNContactStore()
                contact = try contactStore.unifiedContact(withIdentifier: contact.identifier, keysToFetch: [CNContactViewController.descriptorForRequiredKeys()])
            } catch {
                debugPrint("presentContactEditController error", error.localizedDescription)
            }
        }
        let cnContactViewController = CNContactViewController(for: contact)
        cnContactViewController.delegate = self
        cnContactViewController.setEditing(true, animated: false)

        let contactNaviController = UINavigationController(rootViewController: cnContactViewController)
        present(contactNaviController, animated: true, completion: nil)
    }

但屏幕上有关于这个联系人的信息。所以我试图通过CNContactViewController的继承者,不同的方法ViewController生命周期来实现它,但是它只在viewDidAppear方法中工作,但是用户可以看到它。我怎样才能解决这个问题?谢谢您。

最佳答案

只需更改let cnContactViewController=cnContactViewController(for:contact)

设cvc=CNContactViewController(对于newcontact:contact)
对你有用

07-26 09:38