111 AddressBookUI

1.和照相相冊相似是一個控制器:

ABPeoplePickerNavigationController *vc = [[ABPeoplePickerNavigationController alloc] init];
#warning 注意, 通訊錄控制器的代理不是delegate, 而是peoplePickerDelegate
vc.peoplePickerDelegate = self;
[self presentViewController:vc animated:YES completion:nil];

2.iOS7彈出選擇聯繫人之後需要手動退出界面(iOS8自動退出):

// 在iOS7時 點擊cancle按鈕時候就會調用
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{
    // 關閉通訊錄
    [peoplePicker dismissViewControllerAnimated:YES completion:nil];
}

3.iOS7通過以下兩個代理方法拿到聯繫人數據:

//  在iOS7時 , 選中某一個聯繫人就會調用
// 返回一個BOOL值, 如果返回NO, 代表不會進入下一層(詳情), 如果返回YES,代表會進入下一層
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{
    return YES;
}

//  在iOS7時 , 選中某一個聯繫人的某一個屬性時就會調用
// 返回一個BOOL值, 如果返回NO, 代表不會進行下一步操作(打電話, 打開日曆....), 如果返回YES,代表會進行下一步操作
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{   
    return YES;
}

4.iOS8通過以下代理方法拿到聯繫人數據:

//  選中某一個聯繫人就會調用
#warning 只要實現了這個方法, 就不會進行下一步操作(進入詳情), iOS8的做法是默認返回NO
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{
}

// 選中某一個聯繫人的某一個屬性時就會調用
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章