我正在实现一个应用程序,用户应该能够从通讯录中导入联系人或自己提供联系人。我使用https://github.com/soffes/sspersonviewcontroller实现了一切。新联系人已添加到通讯录中,一切正常。通过使用 ABPersonViewController 等,我拥有所有字段和编辑功能......
但是现在客户坚持不应该将联系人存储在地址簿中,而是在应用程序中,并且除了导入之外,永远不应该要求用户授予对地址簿的访问权限。
我通过使用 ABRecordRef 的序列化程序(来自https://github.com/nvrooij/Let-s-Share/blob/master/Classes/ABRecordSerializer.h)使“将联系人导入应用程序”工作
但我最大的问题是,ABNewPersonViewController 和 ABPersonViewController 坚持要求用户访问地址簿。
所以我需要:
无需访问地址簿即可创建联系人的视图。它应该将 ABRecordRef 返回给一个人,这样我就可以在某个地方对其进行序列化(atm 我将它存储到 NSUserDefaults)
无需访问地址簿即可编辑联系人的视图。
我已经尝试过: 按照如何在不连接到地址簿的情况下使用 ABPersonViewController我设置了 displayPerson - 但“授权访问弹出窗口”仍然出现。
从 ABNewPersonViewController 和 ABPersonViewController 的文档中,我得到的印象是,在所有情况下,子类化和覆盖地址簿的 getter 以返回 nil 都可以,我最终会看到没有地址簿的视图。但是在那里的某个地方(我假设视图本身)再次创建了地址簿,我无法摆脱这个电话。
你可以如何提供帮助_
任何指向 ABPersonViewController 重新实现的指针(包括编辑功能)或任何其他提示都非常受欢迎。
任何关于如何创建具有所有好东西(国家选择、字段添加等)的创建用户视图控制器的想法也非常受欢迎。
如果您认为我的方法完全不正确,请也发表评论。我一直在寻找不同的角度,可能对整个通讯簿灾难挖得太深了。
我希望用于创建和编辑联系人的控制器与地址簿完全分离,并返回 ABRecordRef 而不是访问地址簿。就我而言,这将大大简化我的任务(一个人可以梦想)。
一切顺利,iosGoblin