iOS7 - ABPersonViewController, modo de edição
A Apple apresenta um bom exemplo abrangente e pequeno, "QuickContacts" (developer.apple.com/library/IOs/samplecode/QuickContacts/Introduction/Intro.html), descrevendo o uso básico doEstrutura de interface do usuário do catálogo de endereços. - O código-fonte para download funciona conforme descrito (uma vez que você adiciona uma pessoa chamada "Appleseed" ao seu catálogo de endereços ou altera o nome da pessoa na linha 246 (do QuickContactsViewController.m) para algo que já exista no seu catálogo de endereços).
Questão: Como podemos modificar a função-(void)showPersonViewController
funcionar de tal forma que oABPersonViewController "picker"
já está em modo de edição (com um botão de edição "Done" visível), quando é aberto (depois de ser colocado na pilha do navigationController).
Nas versões do iOS anteriores a "7", era uma questão imediata apenas inserir, por ex.picker.editing = YES;
antes de empurrar o selecionador para a pilha de naves, para vê-lo no modo de edição, uma vez aberto (veja o código abaixo).
No iOS7, isso não funciona mais.
Isso é um bug no iOS7? Em caso afirmativo, existe uma solução simples (em vez de, porABPersonViewController
classe)? - Ou precisa ser codificado de forma diferente hoje em dia?
Fico na expectativa dos seus comentários.
-(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];
}
...
...
}