我想更改leftBarButton标题。我试过这个
UIBarButtonItem *newBackButton =
[[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
[[self navigationItem] setLeftBarButtonItem:newBackButton];
但它会带来像
这样的变化
但我希望它像
怎么可能?
答案 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]];
会做你想要达到的目标。这是我使用上面提到的代码获得的图像。
如果您不使用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];
}