iOS中一个UI控件只能被用在一个地方,如果你还想要一个rightbarbuttonitem的话,可以再写一个。可参考以下代码
//leftBarButtonItem
UIButton * backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0,0,40, 40);
[backButton addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside];
[backButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
//rightBarButtonItem
UIButton * cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
cancelButton.frame = CGRectMake(0,0,40, 40);
[cancelButton addTarget:self action:@selector(cancelClick) forControlEvents:UIControlEventTouchUpInside];
[cancelButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:cancelButton];
就算两个按钮一样,也需要两个控件,另外,可以直接定义为button,不用imageView+gesture,我自己的项目里一般都是像我给的代码这么写的。希望对你有帮助。