3

这是我用来调用人员选择器的代码,但提示标签文本不会改变:

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

4 回答 4

6

其他答案中缺少关键信息,而且不是很明显。您需要在该行之后设置提示:

[self presentModalViewController:picker animated:YES];

所以,如果你这样做,它会起作用:

[self presentModalViewController:picker animated:YES];
picker.navigationBar.topItem.prompt = @"Choose a contact to...";
于 2010-10-07T05:20:45.110 回答
1

我刚刚偶然发现了一种方法来做到这一点。但是,我不确定这是最好的方法。只需在行上方的代码中替换

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

picker.navigationBar.topItem.prompt = @"Choose a contact to...";
于 2010-03-13T16:15:53.630 回答
1

您可以使用以下方法更改标题:

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

您可以使用以下命令更改提示:

picker.navigationBar.topItem.prompt = @"iPhone Contacts";
于 2010-06-21T16:01:08.160 回答
0

如果您对 ABPeoplePickerNavigationController 进行子类化,则需要在推送视图控制器后进行设置。这实际上是实现了 Johan 建议的相同目标,但来自班级内部。

在 ABPeoplePickerNavigationController 中实现以下委托方法,如下所示:

-(void)navigationController:(UINavigationController *)navigationController 
     willShowViewController:(UIViewController *)viewController 
                   animated:(BOOL)animated
{
    [[[self navigationBar] topItem] setPrompt:@"test"];
}
于 2011-05-26T00:06:10.343 回答