【问题标题】:iPhone - People picker, is it possible to change the naviagtion bar color and text?iPhone - 人物选择器,是否可以更改导航栏颜色和文本?
【发布时间】:2011-06-02 20:17:01
【问题描述】:

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

我试过了:

picker.navigationBar.backgroundColor = [UIColor blackColor];

但它仍然显示为蓝色。

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

编辑:

对颜色使用以下作品:

picker.navigationBar.tintColor = [UIColor blackColor];

但是使用:

picker.title = @"MyText";

picker.navigationItem.title=@"MyText";

self.title=@"MyText";

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

【问题讨论】:

    标签: iphone background-color abpeoplepickerview peoplepicker


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你知道苹果商店是否接受改变地址簿颜色的应用程序?
    • @Fran - 我认为他们做到了,但我不确定。在这一点上,你不应该再使用这样的类别,因为 iOS 5 添加了自定义原生 UI 控件的新方法.
    【解决方案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];   
    }
    

    【讨论】:

      【解决方案3】:

      用于更改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" ;
      

      【讨论】:

      • 谢谢,tintcolor 有效,但 self.text 无效,peoplepicker 上的标题仍然是“所有联系人”
      猜你喜欢
      • 2021-07-23
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      相关资源
      最近更新 更多