更改 UIBarButtonItem 后退按钮

Posted

技术标签:

【中文标题】更改 UIBarButtonItem 后退按钮【英文标题】:change UIBarButtonItem back button 【发布时间】:2013-11-27 08:38:41 【问题描述】:

我正在尝试更改导航控制器 backBarButton, 没有创建背部的新功能。 这是我的代码:

UIImage *backButtonImage = [[UIImage imageNamed:@"backt.clicked@2x~iphone.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 27, 0, 27)];

(宽度=27,高度=27);

 [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

我得到了什么:

如何更改大小并删除标题?

【问题讨论】:

转发此***.com/questions/1449339/… thanx 但它不起作用以太...... 你试过什么代码,把你的代码贴在这里。 我已经把它贴在上面了。 【参考方案1】:
- (UIBarButtonItem *)createBackMenuButton 
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [backButton addTarget:self action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];
    [backButton setFrame:BACK_BUTTON_FRAME];
    [backButton setExclusiveTouch:YES];
    [backButton setImage:[UIImage imageNamed:BACK_BUTTON_DEFAULT_ICON] forState:UIControlStateNormal];

    UIBarButtonItem *backButtonHolder = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    return backButtonHolder;


- (void)viewWillAppear:(BOOL)animated 

    self.navigationItem.leftBarButtonItem = [self createBackMenuButton];

【讨论】:

我想要更简单的东西,我不想为后退项目添加新功能,我想使用默认导航控制器后退功能。 popViewControllerAnimated:这是默认的导航控制器返回功能:D 是的,我知道 :) 但我很确定只有更改图像的选项不是你的事? 这个简单的选项是改变按钮的背景图像,就像你做的那样;但是如果你想改变图像,而不是背景图像,你应该按照我的建议去做【参考方案2】:

试试这个

UIImage *backButtonImage = [[UIImage imageNamed:@"backt.clicked@2x~iphone.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 27, 0, 27)];
CGRect frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);

UIButton *button = [[UIButton alloc] initWithFrame:frame];
[button setImage:backButtonImage forState:UIControlStateNormal];
[button addTarget:self action:@selector(backButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

编辑

UIImage *backButtonImage = [[UIImage imageNamed:@"backt.clicked@2x~iphone.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 27, 0, 27)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.topItem.title = @"";

【讨论】:

我想要更简单的东西,我不想为后退项目添加新功能,我想使用默认导航控制器后退功能。这可能吗? 当标题是 @"" 就像你写的那样 - 后退按钮消失了..如果我添加 @" " (带空格) 它会变大.. 无论如何图像大小并不是真的设置.. @Esty 如果实际图像太大,您应该真正调整其大小。忽略重资产 那我该如何调整它的大小?? @Esty 您使用任何图像编辑器根据导航大小调整图像大小:)

以上是关于更改 UIBarButtonItem 后退按钮的主要内容,如果未能解决你的问题,请参考以下文章

需要更改ipad导航栏上的后退按钮名称

添加 UIBarButtonItem 覆盖 UINavigationController 后退按钮

反转 UIBarButtonItem“播放”以用作后退按钮?

需要 2 个 UIBarButtonItem 后退按钮所在的位置

UIBarButtonItem 的默认后退按钮背景图像出现在我的自定义

iOS 7后退按钮箭头垂直对齐