这是我用来调用人员选择器的代码,但提示标签文本没有改变:
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];
答案 0 :(得分:6)
其他答案中缺少一个关键信息,并不是很明显。您需要在行
之后设置提示[self presentModalViewController:picker animated:YES];
所以,如果你这样做,它就有效:
[self presentModalViewController:picker animated:YES];
picker.navigationBar.topItem.prompt = @"Choose a contact to...";
答案 1 :(得分:1)
我偶然发现了一种方法。但是,我不确定这是最好的方法。只需替换行
上面的代码即可picker.navigationItem.prompt = @"Choose a contact to...";
使用
picker.navigationBar.topItem.prompt = @"Choose a contact to...";
答案 2 :(得分:1)
您可以使用以下内容更改标题:
picker.navigationBar.topItem.title = @"iPhone Contacts";
您可以使用以下命令更改提示:
picker.navigationBar.topItem.prompt = @"iPhone Contacts";
答案 3 :(得分:0)
如果要对ABPeoplePickerNavigationController进行子类化,则需要在按下视图控制器后进行设置。这实际上是实现与Johan建议的相同的东西,但是来自班级内部。
在ABPeoplePickerNavigationController中实现以下委托方法,如下所示:
-(void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
{
[[[self navigationBar] topItem] setPrompt:@"test"];
}