Wenn ein Kontakt nur 1 Telefonnummer hat, möchte ich ihn auswählen. Wenn es mehr als 1 Telefonnummer hat, möchte ich die detaillierte Kontaktkarte anzeigen.Detaillierte Kontaktkarte anzeigen, wenn der Kontakt mehr als eine Telefonnummer hat
Ich verwende die folgende Methode, die gut funktioniert.
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person {
if (person != nil) {
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueGetCount(phoneNumbers) == 1) {
//Do stuff to select phone number
}
}
}
Dann habe ich dieses Dienstprogramm Methode implementieren Detaillierte Kontaktkarte anzuzeigen:
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier {
NSString* phone = nil;
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueGetCount(phoneNumbers) > 0) {
CFIndex index = ABMultiValueGetIndexForIdentifier(phoneNumbers, identifier);
phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, index);
}
}
aber diese Methode nie aufgerufen wird? Wenn ich die erste Methode auskommentiere, wird die zweite Methode aufgerufen. Wie kann ich beide anrufen, oder gibt es einen anderen Weg, dies zu erreichen?