SwiftUI:如何从NavigationView打开CNContactViewController?

3
我正在尝试从NavigationView打开CNContactViewController以创建新联系人。到目前为止,我尝试并失败的方法如下:
  1. 添加导航栏项并设置目标
        .navigationBarItems(trailing:
            NavigationLink(destination: self.addContact()) {
                Text("Add")
            }
        )
  1. addContact 函数返回新的视图
    func addContact() -> CNContactViewController {
        let con = CNContact()
        let vc = CNContactViewController(forNewContact: con)
        return vc
    }

很遗憾,这似乎不起作用。我对iOS和SwiftUI相当新,并不确定这是否是正确的方法,请帮忙!

2个回答

1

@ArjunKomath 很高兴它对你有用;享受SwiftUI的乐趣吧。 - meaning-matters

0

完整解决方案;

 .navigationBarItems(trailing:
            NavigationLink(destination: self.addContact()) {
                Text("Add")
            }
        )

函数;

func addContact() -> MyCNContactViewController {
           let vc = MyCNContactViewController()
           return vc
       }

可表示的结构体,用于包装`CNContactViewController`

struct MyCNContactViewController: UIViewControllerRepresentable {
    typealias UIViewControllerType = CNContactViewController
  
    func makeUIViewController(context: Context) -> CNContactViewController {
        
        let con = CNContact()
     
        let vc = CNContactViewController(forNewContact: con)
        
        vc.allowsActions = true
        
        return vc
    }

    func updateUIViewController(_ uiViewController: CNContactViewController, context: Context) {
        
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接