CNContactViewController - 编辑按钮未显示

时间:2016-01-28 21:55:55

标签: ios swift uinavigationcontroller contacts viewcontroller

我目前正在开发一个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,因此它应该是可编辑的)

1 个答案:

答案 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)