2013-06-27 2 views
0

Я использую ниже код, чтобы настроить правильный barbutton на панели навигации:Две кнопки появляются при использовании setRightBarButtonItem

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, так и кнопки по умолчанию системы. FYI, ни одна кнопка не отображается до того, как я добавлю свою пользовательскую кнопку. Как сделать кнопку по умолчанию исчезнуть и показать только мою пользовательскую кнопку?

ответ

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

Используйте initWithCustomView от UIBarButtonItem с UIImageView, содержащий UIImage.

+0

спасибо, это работает, но принятый ответ более подробно. – itenyh

Смежные вопросы