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

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

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

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

UIButton *backButton = [UIButton buttonWithType:101];
    [backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
    [backButton setTitle:cancelText forState:UIControlStateNormal];
    
    UIBarButtonItem *backItem = [[[UIBarButtonItem alloc] initWithCustomView:backButton] autorelease];
    self.navigationItem.leftBarButtonItem = backItem;


保存或者其他Action在back方法中实现杰克

你可能感兴趣的:(让navigationItem.leftBarButtonItem具有backBarButtonItem的外观样式)