2011-05-30 63 views
2

一个快速的iPhone问题,我目前在我的应用程序中使用人员选择器,我在我的应用程序中使用黑色导航栏,但人员选择器以默认的蓝色显示。iPhone - 人员选取器,是否可以更改naviagtion栏的颜色和文字?

我曾尝试:

picker.navigationBar.backgroundColor = [UIColor blackColor]; 

但是它仍然显示蓝色。

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

编辑:

使用的颜色以下工作:

picker.navigationBar.tintColor = [UIColor blackColor]; 

但是使用:

picker.title = @"MyText"; 

[email protected]"MyText"; 

[email protected]"MyText"; 

不行的,标题始终保持为“所有联系人”

回答

2

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

您可以通过在UINavigationBar上设置类别来更改全部导航栏的颜色。请注意,您在类别中所做的所有更改都将应用于您应用中该类的所有实例。

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

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

+0

文本,你知道,如果苹果商店接受变更后的地址簿颜色应用颜色的? – Sefran2 2011-12-03 09:46:07

+0

@Fran - 我认为他们做了,但我不确定。在这一点上,你不应该再使用类别了,因为iOS 5增加了自定义原生UI控件的新方法。 – Moshe 2011-12-03 22:57:28

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" ; 
+0

谢谢,tintcolor的作品,但self.text没有,在peoplepicker上的标题仍然是“所有联系人” – 2011-06-02 15:53:38

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]; 
} 
+0

这使应用程序崩溃 – 2013-02-26 11:30:11

相关问题