Как установить подсказку ABPeoplePickerNavigationController? - PullRequest
3 голосов
/ 13 марта 2010

Это код, который я использую для вызова средства выбора людей, но текст метки приглашения не меняется:

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];

Ответы [ 4 ]

6 голосов
/ 07 октября 2010

В других ответах отсутствует ключевая информация, которая не совсем очевидна. Вам необходимо установить подсказку после строки:

[self presentModalViewController:picker animated:YES];

Итак, если вы делаете это так, это работает:

[self presentModalViewController:picker animated:YES];
picker.navigationBar.topItem.prompt = @"Choose a contact to...";
1 голос
/ 21 июня 2010

Вы можете изменить заголовок с помощью:

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

И вы можете изменить запрос с помощью:

picker.navigationBar.topItem.prompt = @"iPhone Contacts";
1 голос
/ 13 марта 2010

Я только что наткнулся на способ сделать это. Однако я не уверен, что это лучший способ. Просто замените в коде над строкой

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

С

picker.navigationBar.topItem.prompt = @"Choose a contact to...";
0 голосов
/ 26 мая 2011

Если вы подклассифицируете ABPeoplePickerNavigationController, вам нужно установить его, как только контроллер представления будет сдвинут. По сути, это то же самое, что и Джохан, но из класса.

В ABPeoplePickerNavigationController реализовать следующий метод делегата, например, так:

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