2014-09-24 17 views
12

Sto tentando di personalizzare la barra di navigazione di ABPeoplePickerNavigationController aggiungendo il numero personalizzato UIBarButtonItem come barbuttonitem sinistro e destro del controller di visualizzazione superiore di UINavigationController. Questa caratteristica funzionava bene in iOS7 e versioni precedenti, ma non in iOS 8.Personalizzazione di ABPeoplePickerNavigationLa barra di navigazione diController in iOS 8

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{ 

navigationController.topViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewContact:)]; 

navigationController.topViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel:)]; 
} 

viene eseguito il codice di cui sopra, ma non ha alcun effetto. PeoplePickerNavigationController mostra la barra di navigazione predefinita, con i suoi pulsanti Gruppi e Annulla predefiniti.

Cosa è cambiato in iOS 8? Devo ri-implementare, cosa ho già fatto?

Modifica: Ho registrato il ViewController in cima allo stack di navigazione. Si chiama CNContactPicker.

+0

Hai provato a impostarlo? navigationController.topViewController.navigationItem.rightBarButtonItems navigationController.topViewController.navigationItem.leftBarButtonItems al posto del rightBarButtonItem e leftBarButtonItem –

+0

Sì, provato anche questo. Ma non sta funzionando. –

+0

@XaviValero, ho avuto lo stesso problema di te. Hai trovato la soluzione? Ti sarei grato se mi puoi aiutare –

risposta

1

mi prendo un colpo:

in iOS 8 credo Apple ha fatto questo in un prolungamento in qualche modo. Ciò significa che il codice è l'app Contatti. Probabilmente è in esecuzione in un altro contesto.

Penso che questo perché ho letto che non è più necessario chiedere all'utente l'accesso all'elenco dei contatti per utilizzare questi raccoglitori. Ciò significa che non fanno realmente parte della tua app, cioè un'estensione.

Potrebbe esserci un modo per impedirlo. La mia scommessa è che dovresti passare un ABAddressBook al selezionatore per fare questo.

Problemi correlati