0

В моем UINavigationController я добавил кнопку добавления через раскадровку. Моя кнопка добавления по умолчанию «+» UIBarButtonItem от iOS/xcode. Я хотел бы добавить пользовательское фоновое изображение к кнопке. Мои коды не работают: фоновое изображение не добавляется.установить фоновое изображение панели навигации пункт

-(void)addBackgroundToPlusSign 
{ 
    UIImage *addBkg = [UIImage imageNamed:@"plus_sign"]; 
    addBkg = [addBkg imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
    [self.navigationItem.rightBarButtonItem setBackButtonBackgroundImage:addBkg forState:UIControlStateNormal barMetrics:0]; 
} 

Я пытаюсь вызвать метод в viewDidLoad, а затем в viewWillAppear. Не повезло.

ответ

1

Ваш вопрос в том, что вы настраиваете фоновое изображение Кнопки возврата на правой кнопке нав ... Правая кнопка навигации не назад кнопки , Из документации:

Этот модификатор применим только к кнопкам панели навигации и игнорируется другими кнопками.

Вы хотите использовать setBackgroundImage:forState:barMetrics:

+0

aha! Я использовал 'setBackButtonBackgroundImage' вместо' setBackgroundImage'. Бинго! Благодарю. Копировать и вставить ошибку стало плохо. –

+0

Рад помочь :) – Mike

0

Вы можете добавить UIImageView или кнопку примера:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 0, 70, 30)]; 

[button setImage:[UIImage imageNamed:@"plus_sign"] forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(your_method) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

self.navigationItem.rightBarButtonItem = buttonItem; 
+0

Вы отвечаете на другую проблему, которую я уже знаю, как решить. Я хочу добавить фон к кнопке, которая поставляется с Xcode. Если вы считаете, что знак плюса - это простой случай, представьте себе одну из более сложных кнопок, например, мусор или камеру. –

0

попробовать сделать:

UIBarButtonItem * addBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(btnHandler:)]; 

UIImage *addBkg = [UIImage imageNamed:@"plus_sign"]; 
addBkg = [addBkg imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
[addBtn setBackgroundImage:addBkg forState:UIControlStateNormal barMetrics:0]; 

self.navigationItem.rightBarButtonItem = addBtn; 

Я думаю, что раньше ошибка, когда установка на фоне существующей кнопки не работают, пока вид не был повторно - добавлен в стек представления. Вы также можете попробовать:

self.navigationItem.rightBarButtonItem = self.navigationItem.rightBarButtonItem; 
Смежные вопросы