自定义导航栏的返回按钮标题

在iOS开发中,导航栏的定制是开发人员经常要做的事情,不过有的情况下,使用苹果官方自带的效果也很不错。苹果对导航栏的封装,让开发者省了不少事情。就比如说导航栏的返回按钮,它的标题会自动的显示为上一级控制器的title的内容,但是如果上一级的标题过长,它便会自动的变成“返回”两个字。有的时候,返回按钮的字太多也会影响美观,所以改变返回按钮的标题也是一种需求。但是如果你尝试着在当前控制器更改返回按钮的标题:

self.navigationItem.backBarButtonItem.title = @"xxx";

你会发现,这样做并没有什么用。

实际上,当前控制器的backBarButtonItem是需要在被push过来之前,在上级控制器中设置的。

正确的做法,是这样:

UIBarButtonItem *backItem = [[UIBarButtonItem alloc]init];
backItem.title = @"xxx";
self.navigationItem.backBarButtonItem = backItem;

在这里请注意,设置的是上一级控制器自己的self.navigationItem.backBarButtonItem,而不是下一级的。