iPhone - 人物选择器,是否可以更改导航栏颜色和文本?

时间:2011-05-30 14:48:42

标签: iphone background-color abpeoplepickerview peoplepicker

一个快速的iPhone问题,我目前在我的应用程序中使用了一个人物选择器,我在我的应用程序中使用了黑色导航栏,但是人员选择器以默认的蓝色显示。

我试过了:

picker.navigationBar.backgroundColor = [UIColor blackColor];

然而它仍然以蓝色显示。

是否可以更改人员选取器上导航栏的颜色?或者它是否总是蓝色,因为它是系统模态视图?

修改

使用以下作品颜色:

picker.navigationBar.tintColor = [UIColor blackColor];

然而使用:

picker.title = @"MyText";

picker.navigationItem.title=@"MyText";

self.title=@"MyText";

不起作用,标题始终保持为“所有联系人”

3 个答案:

答案 0 :(得分:2)

UINavigationBar的颜色由其tintColor属性控制。

您可以通过在UINavigationBar上创建一个类别来更改应用中所有导航栏的颜色。请注意,您在某个类别中所做的所有更改都会应用于您应用中该类的所有实例。

在您的类别中,在init方法中,更改self.tintColor

由于类别会更改应用中类的所有实例,因此使用类别更改文本会更加棘手。相反,请尝试设置目标视图的title

答案 1 :(得分:2)

- (void)showNewPersonViewController {
ABNewPersonViewController *picker1 = [[ABNewPersonViewController alloc] init];
picker1.newPersonViewDelegate = self;

UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:picker1];
navigation.navigationBar.tintColor = [UIColor brownColor];
[self presentModalViewController:navigation animated:YES];

[picker1 release];
[navigation release];   
}

答案 2 :(得分:1)

用于更改UINavigationController

的颜色
self.navigationController.navigationBar.tintColor=[UIColor colorWithRed:42/256.0 green:60/256.0 blue:80/256.0 alpha:1.0];

更改UINavigationController

的文字
self.text = @"My New text" ;