2010-03-13 4 views
3

Voici le code que je utilise pour appeler le sélecteur de personnes, mais le texte de l'étiquette rapide ne change pas:Comment définir une invite de ABPeoplePickerNavigationController?

ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
picker.peoplePickerDelegate = self; 
picker.displayedProperties = [NSArray arrayWithObjects: [NSNumber numberWithInt:kABPersonEmailProperty], nil]; 

picker.navigationItem.prompt = @"Choose a contact to..."; 

[self presentModalViewController:picker animated:YES]; 

Répondre

1

Vous pouvez modifier le titre avec:

picker.navigationBar.topItem.title = @"iPhone Contacts"; 

Et vous pouvez changer l'invite avec:

picker.navigationBar.topItem.prompt = @"iPhone Contacts"; 
+0

picker.navigationBar.topItem.title = @ "iPhone Contacts"; ne change pas le titre. Une idée? –

1

Je viens de tombé sur une façon de le faire. Cependant, je ne suis pas sûr que ce soit le meilleur moyen. Il suffit de remplacer dans le code ci-dessus la ligne

picker.navigationItem.prompt = @"Choose a contact to..."; 

Avec

picker.navigationBar.topItem.prompt = @"Choose a contact to..."; 
6

Il y a un élément clé de l'information ssing dans les autres réponses, et pas tout à fait évident. Vous devez définir l'invite après la ligne:

[self presentModalViewController:picker animated:YES]; 

Alors, si vous le faites comme ça, cela fonctionne:

[self presentModalViewController:picker animated:YES]; 
picker.navigationBar.topItem.prompt = @"Choose a contact to..."; 
0

Si vous êtes sous-classing le ABPeoplePickerNavigationController vous devez régler ceci une fois que le contrôleur de vue est poussé. C'est en effet ce qu'obtient la même chose que Johan suggéra, mais de l'intérieur de la classe.

Dans la ABPeoplePickerNavigationController mettre en œuvre la méthode de délégué à la suite comme ceci:

-(void)navigationController:(UINavigationController *)navigationController 
    willShowViewController:(UIViewController *)viewController 
        animated:(BOOL)animated 
{ 
    [[[self navigationBar] topItem] setPrompt:@"test"]; 
} 
Questions connexes