2014-09-25 58 views
5

在ios8,我想要訪問聯繫人屬性,如果他有多個電話號碼,但我不知道如何在iOS8中執行此操作。顯示聯繫人屬性,如果它有多個電話號碼與ios8

這是我在iOS7代碼:

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{ 

    //If person has just one phone number 
    ABMultiValueRef phonesRef = ABRecordCopyValue(person, kABPersonPhoneProperty); 
    if(ABMultiValueGetCount(phonesRef) == 1){ 

     CPIContact* contact = [self getCPIContactFromPerson:person andPhoneIndex:0]; 
     [self addContact:contact]; 

     // Dismiss the address book view controller. 
     [_addressBookController dismissViewControllerAnimated:YES completion:nil]; 
     return NO; 

    }else if(ABMultiValueGetCount(phonesRef) == 0){ 

     [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Common_information",nil) message:NSLocalizedString(@"EditCallSMS_noNumber", nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"Common_ok",nil) otherButtonTitles:nil] show]; 

     return NO; 
    } 
    else{ 
     return YES; 
    } 

} 

我知道我要使用從iOS8上的方法didSelectPerson,但我不知道如何告訴應用程序,它可以選擇像一個人後繼續IOS 7。

我讀了關於蘋果文檔的predicateForSelectionOfPerson,但我不明白如何使用它。

https://developer.apple.com/library/ios/documentation/AddressBookUI/Reference/ABPeoplePickerNavigationController_Class/index.html#//apple_ref/occ/instp/ABPeoplePickerNavigationController/predicateForSelectionOfProperty

預先感謝您的幫助。

if ([peoplePicker respondsToSelector:@selector(setPredicateForSelectionOfPerson:)]) 
{ 
    peoplePicker.predicateForSelectionOfPerson = [NSPredicate predicateWithFormat:@"%[email protected] > 1", ABPersonPhoneNumbersProperty]; 
} 

這隻會讓你選擇2個以上的電話號碼的聯繫人:

回答

10

你實例人員選取器添加此。對於其他聯繫人,您將看到聯繫詳情。

+1

謝謝!這就是我需要的!恰恰相反(「%K @ count <2」),但現在我明白如何在人員選取器中使用謂詞。 – Leep 2014-10-06 12:38:33

+0

可能還需要: 如果([拾取器respondsToSelector:@selector(setPredicateForEnablingPerson :)]) { picker.predicateForEnablingPerson = [NSPredicate predicateWithFormat:@ 「emailAddresses @計數> 0」]; } 沒有這一點,我的應用程序根本不會選擇聯繫人 – 2014-12-17 13:35:01

+0

@Leep當我添加'(「%K. @ count <2」)'時,所有電話號碼少於2個的聯繫人將變灰。 – user1324887 2016-07-19 06:53:17

相關問題