iOS7 - ABPersonViewController, tryb edycji
Apple oferuje miły i obszerny przykład „QuickContacts” (developer.apple.com/library/IOs/samplecode/QuickContacts/Introduction/Intro.html), określając podstawowe użycieStruktura interfejsu książki adresowej. - Pobieralny kod źródłowy działa zgodnie z opisem (po dodaniu osoby o nazwie „Appleseed” do książki adresowej lub zmianie nazwy osoby w linii 246 (QuickContactsViewController.m) na coś, co już istnieje w książce adresowej).
Pytanie: Jak możemy zmodyfikować funkcję-(void)showPersonViewController
działają w taki sposób, żeABPersonViewController "picker"
jest już w trybie edycji (z widocznym edytowanym przyciskiem „Gotowe”), gdy się otworzy (po wypchnięciu na stos nawigacji navigationController).
W wersjach iOS wcześniejszych niż „7” była to prosta sprawa wstawiania np.picker.editing = YES;
przed pchnięciem selektora na stos, aby zobaczyć go w trybie edycji, po jego otwarciu (patrz kod poniżej).
W iOS7 to już nie działa.
Czy jest to błąd w iOS7, jeśli tak, to czy istnieje prosta praca (a nie np. Inżynieria odwrotnaABPersonViewController
klasa)? - A może w dzisiejszych czasach trzeba kodować inaczej?
Czekam na twoje komentarze.
-(void)showPersonViewController
{
// Search for the person named "Appleseed" in the address book
NSArray *people = (NSArray *)CFBridgingRelease(ABAddressBookCopyPeopleWithName(self.addressBook, CFSTR("Appleseed")));
// Display "Appleseed" information if found in the address book
if ((people != nil) && [people count])
{
ABRecordRef person = (__bridge ABRecordRef)[people objectAtIndex:0];
ABPersonViewController *picker = [[ABPersonViewController alloc] init];
picker.personViewDelegate = self;
picker.displayedPerson = person;
// Allow users to edit the person’s information
picker.allowsEditing = YES;
picker.editing = YES; // in iOS6 this works, in iOS7 it does not
[self.navigationController pushViewController:picker animated:YES];
}
...
...
}