iOS 修改backBarButtonItem 中的titile 字段

时间:2023-03-08 21:47:57

需求如下:A 页面 push 到 B 页面。    B 页面中有个返回按钮 不显示A 中的title,而显示 "<返回" ,当然系统的样式还是默认的系统样式。(考虑都是navitation 导航下进行的)

方案一)

我第一想到的思路是:

在B页面中将backItem 隐藏,然后自定义一个按钮

1.  [self.navigationItem setHidesBackButton:YES]

2.    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] init];

backItem.title = @"返回";

self.navigationItem.backBarButtonItem = backItem;

[backItem addTarget:self .....]   ;//还要添加自定义事件

3.  self.navigationItem.leftBarButtonItem=backItem;

这个方案好烦啊。。。。。因此让像我那么懒的一个人,肯定是无法容忍为了实现就那么个功能而去写那么多代码。 一直在想肯定有好的方案,而且是系统提供的。

方案二)

A 中代码导航前修改title 如何,

self.title=@"返回";

[self.navigationController pushViewController:B animated:YES];

不介意那么使用,在A页面导航回来时还要重新设置title,若导航页面多了,代码就乱了,缺少美感,但是个人觉得至少比起方案一那么多代码要好,简单的情况下可以使用。    但是有了方案三的终极方案,前面两个就纯属娱乐。  呵呵

方案三)

无意中发现自己最想要的一种方案。

在A 代码中导航前写上

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] init];

backItem.title = @"返回";

self.navigationItem.backBarButtonItem = backItem;

[self.navigationController pushViewController:B  animated:YES];

这才是最完美的解决方案啊。  感谢CCTV,感谢MTV。

本人自己也一直意识到了self.navigationItem.backBarButtonItem这个按钮的存在,只是讲他使用在了B 页面上,所以一直功亏一篑