2010-03-13 55 views
3

这是我使用的人打电话选取器的代码,但提示标签文本不会更改:如何设置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]; 

回答

1

你可以改变标题:

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

你还可以用更改提示:

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

picker.navigationBar.topItem.title = @ “iPhone联系人”;不改变标题。任何想法? – 2011-04-30 16:49:09

1

我只是偶然发现了一个方法来做到这一点。不过,我不确定这是最好的方法。刚刚替换代码行

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

以上

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

有一条关键信息mi在其他答案中选择,而不是很明显。您需要设置的提示后线:

[self presentModalViewController:picker animated:YES]; 

所以,如果你像这样做,它的工作原理:

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

如果你子类,您需要将的ABPeoplePickerNavigationController设置此视图控制器被推动后。这实际上是实现了约翰建议的同样的事情,但是从课内。

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

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