【问题标题】:How do you change color/image on the default backBarButtonItem?如何更改默认 backBarButtonItem 的颜色/图像?
【发布时间】:2010-07-21 09:48:22
【问题描述】:

我需要更改默认“self.navigationItem.backBarButtonItem”的颜色。为此,我创建了一个自定义 Button 类并像这样实现它:

- (void)viewDidLoad {
[super viewDidLoad];    
BackButton *blueSaveButton = [[BackButton alloc] init];
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:blueSaveButton];
temporaryBarButtonItem.title = @"Tillbaka";
self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
[temporaryBarButtonItem release];
[blueSaveButton release];
[self gotoLocation];

}

但这对按钮完全没有影响。 那么如何在不“破坏”导航栏的默认/继承行为的情况下做到这一点呢?

编辑:原因是按钮需要是公司品牌的,所以默认样式不会这样做。

BR

【问题讨论】:

    标签: iphone iphone-sdk-3.0


    【解决方案1】:

    如果您希望按钮为蓝色(如完成按钮)并且标题为“保存”,您可以使用其中一种内置的栏按钮项类型:

    UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(myAction:)] autorelease];
    

    【讨论】:

    • 那很快。我需要设置自定义颜色或图像(企业品牌)。这确实是 iPhone 开发的一个严重缺点,这种简单的任务需要大量定制一个简单的控件。
    • 在这种情况下,您将不得不使用图像。创建一个UIButton,使用setTitle:forState: 和setBackgroundImage:forState 方法设置它的标题和背景图像属性,然后使用UIButton 实例创建UIBarButtonItem 作为自定义视图。据我所知,在按钮上设置背景颜色是不够的。
    • 我已经在 BackButton 控制器中完成了。我得出的推论是 NavigationBarItem 覆盖了我的自定义控制器。
    【解决方案2】:

    好的,找到了解决方案(不太好,但可以)这样做: 1:实现本教程中的按钮:www.switchonthecode.com

    这将覆盖导航栏的默认行为。

    2:在每个需要自定义按钮的视图中实现: osmorphis.blogspot.com

    BR

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2014-08-31
      • 2016-02-05
      • 1970-01-01
      相关资源
      最近更新 更多