使用set RightBarButtonItem时会出现两个按钮

时间:2013-06-27 02:22:04

标签: ios objective-c uinavigationbar uinavigationitem

我使用下面的代码在导航栏上自定义右键:

UIBarButtonItem *bb = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"btn_daohangrightbar_1"] style:UIBarButtonItemStylePlain target:self action:@selector(clickRightBtnEvent:)];
[self.navigationItem setRightBarButtonItem:bb];

但我得到的结果如下:

enter image description here

似乎自定义barButton和系统的默认按钮都会显示出来。仅供参考,在我添加自定义按钮之前没有显示任何按钮。如何确保默认按钮消失并仅显示我的自定义按钮?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用提供的图片创建自定义按钮,并使用自定义视图初始化条形按钮,并将该按钮作为自定义视图提供。

UIImage *image = [UIImage imageNamed:@"myImage"];
CGRect imageFrame = CGRectMake(0,0,image.size.width,image.size.height);

UIButton *btn = [[UIButton alloc] initWithFrame:imageFrame];
[btn setBackgroundImage:image forState:UIControlStateNormal];
[btn addTarget:self action:@selector(clickRightButtonEvent:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *bb = [[UIBarButtonItem alloc] initWithCustomView:btn];
[[self navigationItem] setRightBarButtonItem:bb];

答案 1 :(得分:1)

使用initWithCustomView中的UIBarButtonItemUIImageView包含您的UIImage