Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何更改LeftBarbuttonite名称?_Objective C_Ios7_Uinavigationcontroller_Uinavigationitem - Fatal编程技术网

Objective c 如何更改LeftBarbuttonite名称?

Objective c 如何更改LeftBarbuttonite名称?,objective-c,ios7,uinavigationcontroller,uinavigationitem,Objective C,Ios7,Uinavigationcontroller,Uinavigationitem,我想更改leftBarButton标题。我试过这个 UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil a

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

UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@"Back"
                                 style:UIBarButtonItemStyleBordered
                                target:nil
                                action:nil];
[[self navigationItem] setLeftBarButtonItem:newBackButton];
但它带来的变化就像

但是我想要像这样


怎么可能呢?

这可能对你有帮助

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

在后退按钮上看不到任何箭头是完全正常的。这是因为您正在创建一个新的栏按钮,您可以设置它的标题和样式。但是您为条形按钮项设置的样式不会满足您的需要

我想您正在使用
UINavigationController
导航。如果是这种情况,您需要获取屏幕上显示的
UINavigationController
导航栏的引用。然后,您可以通过“着色颜色”属性更改其颜色。所以

 [self.navigationController.navigationBar setTintColor:[UIColor redColor]]; 
会做你想做的事。这是我使用上面提到的代码获得的图像


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

您应该设置
backbarbuttonim
,而不是
leftbarbuttonim
。请记住,不要在当前视图控制器(您希望它显示的位置)中设置它,而是在父视图控制器(此按钮将返回给您)中设置它。

使用此代码并

  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];
    }
从正在推送下一个视图控制器(ViewController2)的视图控制器(ViewController1)中,需要设置BackBarButtonim

@implementation ViewController1

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

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

我真的不明白你的问题。@jcesar:你看到了箭头,它是默认的Backbarbuttonim。但在第二个视图中,它是“使用带有“UIViewController
UINavigationItem
backBarButtonItem
按钮,而是当另一个视图控制器被推到它的顶部时,它是堆栈中第二个最上面的按钮。