[英]CNContactViewController Cancel Button Not Working
我正在尝试使用内置的新联系人UI,并使用取消按钮获得意外行为。 下面的代码工作并调出新的联系人屏幕,但取消按钮将仅清除未从新联系人屏幕取消的屏幕条目。 在内置联系人应用程序点击取消返回到联系人列表屏幕。 我想取消按钮关闭窗口。
@IBAction func newTwo(sender: AnyObject) {
AppDelegate.getAppDelegate().requestForAccess { (accessGranted) -> Void in
if accessGranted {
let npvc = CNContactViewController(forNewContact: nil)
npvc.delegate = self
self.navigationController?.pushViewController(npvc, animated: true)
}
}
}
你实现了CNContactViewControllerDelegate方法吗? 这是文档的链接
例如:
func contactViewController(viewController: CNContactViewController, didCompleteWithContact contact: CNContact?) {
self.dismissViewControllerAnimated(true, completion: nil)
}
更好的解雇方法是检查联系人是否为零,然后解雇。 如果您已从导航控制器推动视图控制器,则忽略不起作用。 您可能必须执行以下操作:
func contactViewController(viewController: CNContactViewController, didCompleteWithContact contact: CNContact?) {
if let contactCreated = contact
{
}
else
{
_ = self.navigationController?.popViewController(animated: true)
}
}
它使用以下代码为我工作:
斯威夫特3
func contactViewController(_ vc: CNContactViewController, didCompleteWith con: CNContact?) {
vc.dismiss(animated: true)
}
我也改变了调用控制器的方式:
代替:
self.navigationController?.pushViewController(contactViewController, animated: true)
解决方案是:
self.present(UINavigationController(rootViewController: contactViewController), animated:true)
我使用Matt Neuburg编写的示例代码Programming-iOS-Book-Examples找到了解决方案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.