如何改变leftBarbuttonItem标题?

时间:2014-04-14 12:42:59

标签: objective-c ios7 uinavigationcontroller uinavigationitem

我想更改leftBarButton标题。我试过这个

UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@"Back"
                                 style:UIBarButtonItemStyleBordered
                                target:nil
                                action:nil];
[[self navigationItem] setLeftBarButtonItem:newBackButton];

但它会带来像

这样的变化

enter image description here

但我希望它像

enter image description here

怎么可能?

6 个答案:

答案 0 :(得分:3)

它可能对你有帮助

      UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backAction:)];
      self.navigationItem.leftBarButtonItem = backBarButton;

答案 1 :(得分:3)

从推动下一个视图控制器(ViewController2)的视图控制器(ViewController1),您需要设置backBarButtonItem。

@implementation ViewController1

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"New Title" style:UIBarButtonItemStylePlain target:nil action:nil];
}

答案 2 :(得分:1)

你没有看到后退按钮中的任何箭头,这是完全正常的。这是因为您正在创建一个新的条形按钮,您可以设置其标题和样式。但是,您为条形按钮项设置的样式无法满足您的需求。

我认为您正在使用UINavigationController进行导航。如果是这种情况,您需要获得{strong> navigationBar 的引用,UINavigationController会在屏幕上显示。然后,您将能够通过色调属性更改其颜色。所以,

 [self.navigationController.navigationBar setTintColor:[UIColor redColor]]; 

会做你想要达到的目标。这是我使用上面提到的代码获得的图像。 enter image description here

如果您不使用UINavigationController,最简单的解决方案是为已经有箭头的后退按钮提供图像。

答案 3 :(得分:0)

您应该设置backBarButtonItem而不是leftBarButtonItem。并且记住不要在当前视图控制器中设置它(您希望它显示在哪里),而是设置在父视图中(此按钮将返回给您)。

答案 4 :(得分:0)

使用此代码和

  UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];  
  UIImage *backBtnImage = [UIImage imageNamed:@"BackBtn.png"]  ;  
  [backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];  
  [backBtn addTarget:self action:@selector(goback) forControlEvents:UIControlEventTouchUpInside];  
  backBtn.frame = CGRectMake(0, 0, 54, 30);  
  UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;  
  self.navigationItem.leftBarButtonItem = backButton;

并且允许使用此方法。

  -(void)goback
    {
       [self.navigationController popViewControllerAnimated:YES];
    }

答案 5 :(得分:0)

这对我有用

UIImage *image = [[UIImage imageNamed:@"btn_back.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(backAction:)];
self.navigationItem.leftBarButtonItem = button;

- (IBAction)backAction:(id)sender
{
MainMenuViewController *mainMenuViewController = [[MainMenuViewController alloc] init];
[self.navigationController pushViewController:mainMenuViewController animated:YES];
}