让navigationItem.leftBarButtonItem具有backBarButtonItem的外观样式

需求是:点击返回按钮,自动保存设定,然后返回前一个画面,返回按钮必须使用带左箭头的那种,用过iOS的都懂的。 


我一开始用的是iOS默认的backBarButtonItem, 但是发现它不能接收事件(Action),即便我设置了target以及Action也完全不起作用。 用leftBarButtonItem吧,倒是可以接收事件了,但是样式无法成为返回按钮那种箭头样子。 

苦恼, 最后多次尝试,网上也翻了N遍终于找到了一种方法: 
不需要额外制作图片,代码如下: 

Objc代码 
  1. UIButton *backButton = [UIButton buttonWithType:101];  
  2.     [backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];  
  3.     [backButton setTitle:cancelText forState:UIControlStateNormal];  
  4.       
  5.     UIBarButtonItem *backItem = [[[UIBarButtonItem alloc] initWithCustomView:backButton] autorelease];  
  6.     self.navigationItem.leftBarButtonItem = backItem;  
原文地址:https://www.cnblogs.com/wangguimin/p/4561795.html