之前大家是否疑惑为什么设置了类似这样的代码



  1. UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
  2.                                                                   initWithTitle:@"返回" 
  3.                                                                   style:UIBarButtonItemStylePlain 
  4.                                                                   target:self
  5.                                                                   action:nil];
  6.         self.navigationItem.backBarButtonItem = backButton;

复制代码

界面上backButton并没出现“返回”的字样


其实是被leftBarButtonItem和rightBarButtonItem的设置方法所迷惑了

lleftBarButtonItem和rightBarButtonItem设置的是本级页面上的BarButtonItem,而backBarButtonItem设置的是下一级页面上的BarButtonItem

比如:两个ViewController,主A和子B,我们想在A上显示“刷新”的右BarButton,B上的BackButton显示为“撤退”

就应该在A的viewDidLoad类似方法中写:



  1. UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc]
  2.                                                                   initWithTitle:@"刷新" 
  3.                                                                   style:UIBarButtonItemStylePlain 
  4.                                                                   target:self
  5.                                                                   action:nil];
  6.         self.navigationItem.rightBarButtonItem = refreshButton;
  7. UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
  8.                                                                   initWithTitle:@"撤退" 
  9.                                                                   style:UIBarButtonItemStylePlain 
  10.                                                                   target:self
  11.                                                                   action:nil];
  12.         self.navigationItem.backBarButtonItem = cancelButton;

复制代码

而B不需要做任何处理

然后ApushB就可以了