AddressBookUI Framework in iOS9 beta4
来源:互联网 发布:disabled js移除 编辑:程序博客网 时间:2024/05/22 09:02
在以前的iOS版本中,当我们需要读取系统的通讯录时,我们只需要简单调用AddressBookUI framework中的ABPeoplePickerNavigationController,代码如下:
ABPeoplePickerNavigationController *abNavCtrl = [[ABPeoplePickerNavigationController alloc] init]; abNavCtrl.peoplePickerDelegate = self; abNavCtrl.predicateForSelectionOfPerson = [NSPredicate predicateWithValue:FALSE]; [self presentViewController:abNavCtrl animated:YES completion:nil];
然后实现ABPeoplePickerNavigationController的代理就行了。(在iOS8之后,需要用新的代理方法)
(另外,如果没记错,在iOS9 beta4中,打开Contacts时,没有授权提示框出现。)
不确定这是不是iOS9 beta4的bug,测试过Xcode7 beta2/beta3的模拟器都能正常运行。
所以我找到了另外一种方法来解决这个问题,先判断AddressBook的状态,拿到授权再打开Contacts页面。代码如下:
ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus(); if (status == kABAuthorizationStatusNotDetermined) { ABAddressBookRef abRef = ABAddressBookCreateWithOptions(nil, nil); ABAddressBookRequestAccessWithCompletion(abRef, ^(bool granted, CFErrorRef error) { if (nil == error && granted) { ABPeoplePickerNavigationController *abNavCtrl = [[ABPeoplePickerNavigationController alloc] init]; abNavCtrl.peoplePickerDelegate = self; abNavCtrl.predicateForSelectionOfPerson = [NSPredicate predicateWithValue:FALSE]; [self presentViewController:abNavCtrl animated:YES completion:nil]; } else { } }); } else if (status == kABAuthorizationStatusRestricted) { // Show the error prompt pls } else if (status == kABAuthorizationStatusDenied) { // Show the error prompt pls } else if (status == kABAuthorizationStatusAuthorized) { ABPeoplePickerNavigationController *abNavCtrl = [[ABPeoplePickerNavigationController alloc] init]; abNavCtrl.peoplePickerDelegate = self; abNavCtrl.predicateForSelectionOfPerson = [NSPredicate predicateWithValue:FALSE]; [self presentViewController:abNavCtrl animated:YES completion:nil]; }
在iOS7,8中都能正常运行。感觉这个才应该是正确的调用AddressBookUI的流程。
0 0
- AddressBookUI Framework in iOS9 beta4
- 关于ios9中得AddressBook和AddressBookUI框架过时问题
- iphone通讯录AddressBook.framework和AddressBookUI.framework的应用
- iphone通讯录AddressBook.framework和AddressBookUI.framework的应用
- iphone通讯录AddressBook.framework和AddressBookUI.framework的应用
- IOS进阶 AddressBook.framework和AddressBookUI.framework访问通讯录
- 手机联系人相关AddressBookUI.Framwork和AddressBook.Framework
- iOS手机联系人相关AddressBookUI.Framwork和AddressBook.Framework
- CTCallCenter in ios9
- ios中获取当前手机通讯录信息一、在工程中添加AddressBook.framework和AddressBookUI.framework
- 111 AddressBookUI
- iOS AddressBookUI
- UIAlertView is deprecated in ios9
- iOS9 画中画 Picture in Picture
- iOS9
- ios9
- iOS9
- iOS9 每日学习第7天:Contacts Framework
- Android实战技巧:如何在ScrollView中嵌套ListView
- Android Data Binding语法解析(二)
- 并查集的实现
- Treap
- Mistwald(离散数学关系矩阵+矩阵快速幂+数据读取格式问题)
- AddressBookUI Framework in iOS9 beta4
- http
- Android中调用外部地图程序
- Android图像处理之Bitmap类(1)
- 第三篇T语言实例开发,图色操作
- Java 并发专题 :FutureTask 实现预加载数据
- 安卓推送技术手册——使用透传消息的正确姿势
- php数组
- DedeCms 栏目增加缩略图功能的方法