无法更改后退栏按钮文本

Posted

技术标签:

【中文标题】无法更改后退栏按钮文本【英文标题】:Can't change back bar button text 【发布时间】:2013-10-24 05:08:59 【问题描述】:

默认情况下,后退按钮使用视图控制器的标题作为文本。我可以在不更改视图控制器标题的情况下更改后退按钮上的文本吗?我需要这个,因为我有一个视图控制器,它的标题太长而无法显示,在这种情况下,我想只显示“返回”作为返回按钮的标题。

我尝试了以下方法,但没有成功:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];

谢谢。

【问题讨论】:

问题出在你的目标上.. 目标集应该是 self 而不是 nil 【参考方案1】:

试试这个代码

UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"NewTitle"
                                                         style:UIBarButtonItemStylePlain
                                                        target:[self navigationController]
                                                        action:@selector(popViewControllerAnimated:)

【讨论】:

【参考方案2】:

试试这个代码:

    UIButton *aCustomBackButton = [UIButton buttonWithType:101]; 
    [aCustomBackButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
    [aCustomBackButton setTitle:@"customBack" forState:UIControlStateNormal];
    UIBarButtonItem *aLeftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aCustomBackButton];
    self.navigationItem.leftBarButtonItem = aLeftBarButtonItem;

对于 ios 7,请使用以下代码:

UIButton *aCustomBackButton = [UIButton buttonWithType:101];
[aCustomBackButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
[aCustomBackButton setTitle:@"customBack" forState:UIControlStateNormal];

UIImage *backArrow = [UIImage imageNamed:@"backArrow"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:backArrow];
[imageView setFrame:CGRectMake(kScreenOrigin, topMargin, backArrow.size.width, backArrow.size.height)];
[aCustomBackButton addSubview:imageView];

UIBarButtonItem *aNegativeSpacer = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
aNegativeSpacer.width = -8.0;
UIBarButtonItem *aLeftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aCustomBackButton];
self.navigationItem.leftBarButtonItems = @[aNegativeSpacer, aLeftBarButtonItem];

【讨论】:

@user2885928 上面的代码有什么问题,请不要使用单词的排序形式这不是聊天室,请使用正确的拼写。什么是指针? " 我猜你正在使用 iOS 7。请查看我的更新回复。 我认为没有必要为它设置自定义按钮@Abhinav

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

无法更改导航栏后退按钮的背景图像[重复]

更改导航栏后退按钮的粗细

仅在 swift 中更改后退栏按钮项的颜色

更改导航栏后退按钮并删除标题以使其看起来像在 ios7 中

后退按钮不会在导航栏中更改颜色

更改导航栏中后退按钮的颜色