自定义UIBarButtonItem的方法有很多种,但是经过个人使用发现只有本文描述的这一种较为简便。
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
[button setBackgroundImage:[UIImage imageNamed:@"icon_left.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(showLeftMenu) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithCustomView:button];
self.navigationItem.leftBarButtonItem = left;
这种将UIButton赋给UIBarButtonItem的做法非常简单,轻松的解决了BarButtonItem要求图标30*30导致细节非常模糊的情况。