需求如下: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 页面上,所以一直功亏一篑