我目前正在开发一个Swift应用程序,我希望用户能够编辑他们之前在应用程序中创建的联系人。话虽这么说,我正在使用CNContactViewController(forContact: CNContact)
init函数来创建视图控制器。
我在TableViewController
的子类中有以下代码,它嵌入在导航控制器中
let contactViewController = CNContactViewController(forNewContact: contact)
contactViewController.delegate = self
self.navigationController?.pushViewController(contactViewController, animated: true)
当contactViewController
进入视图时,联系人加载正常,但顶部的导航栏中缺少编辑按钮。如果我在将它推送到Nav控制器之前立即对print(contactViewController.allowsEdits)
进行硬编码,那么它就是真的,这很奇怪。
感谢您的帮助。
(注意,我传递给构造函数的联系人是CNMutableContact
,因此它应该是可编辑的)
答案 0 :(得分:-1)
在推送contactViewController之前,您应该只添加此项以显示“编辑”按钮:
let contactViewController = CNContactViewController(forNewContact: contact)
contactViewController.delegate = self
//Here you make Edit button to appear and do things that it is supposed to do
contactViewController.navigationItem.rightBarButtonItem? = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit,target: self, action: nil)
self.navigationController?.pushViewController(contactViewController, animated: true)