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