如何设置ABPeoplePickerNavigationController的提示?

时间:2010-03-13 15:24:41

标签: iphone objective-c cocoa-touch addressbook

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

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 个答案:

答案 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"];
}