UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];//创建按钮并且设置文字为空,不显示文字
UIImage* image = [UIImage imageNamed:@"返回.png"];
[item setBackButtonBackgroundImage:[image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];//设置title的位置偏移到一个不可见的位置,达到隐藏的目的
self.navigationItem.backBarButtonItem = item;
原理很简单,第一行加载图片,第二行以加载图片的宽度结合resizableImageWithCapInsets生成一个缩放时不会拉伸的新图片作为BackButtonBackgroundImage,再在第三行设置title的位置偏移到一个不可见的位置,达到隐藏的目的。另外,如果需要全部统一替换,也可以在app的didFinishLaunching里通[UIBarButtonItem appearance]全部统一替换!