В одном из моего контроллера я быть_наст бар изображение кнопки, как следует (при постукивании): Удалить белый цвет на кнопке подсветки бара
В моем другом контроллере он выглядит следующим образом:
Он всегда использует одинаковый образ из активов. Мне нужно, чтобы моя кнопка всегда была вторым вариантом.
кнопкаПервый (неправильно) объявлен следующим образом:
bbiRight = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:riVM.itemPictureName] style:UIBarButtonItemStylePlain target:nil action:nil];
[RACObserve(((id<CDRRightNavItemProtocol>)self.viewModel), itemPictureName) subscribeNext:^(NSString * x) {
[bbiRight setImage:[UIImage imageNamed:x]];
}];
Второй (правильный) является:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage: [UIImage imageNamed: @"m_starnotactive"] forState:UIControlStateNormal];
[btn setImage: [UIImage imageNamed: @"m_staractive"] forState:UIControlStateSelected];
btn.frame = (CGRect){88,11, 22,22};
btn.rac_command = self.viewModel.cmdSaveToFavorites;
RAC(btn, selected) = RACObserve(self.viewModel, inFavorites);
UIBarButtonItem *bbiFav = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.rightBarButtonItem = bbiFav;
Проблема в том, первый случай используется в абстрактном классе, который используется во многих классах в мое приложение, как изменить его, чтобы моя кнопка на панели не выглядела белой, когда она была выбрана?
Вы пытались установить UIButton tintColor на свой цвет? –
@ АлексейАбдулин, если я это сделаю, я установлю этот цвет для всех экземпляров представления таблиц с этим контроллером. –
Если вы установили tintColor, например, UIButton, он будет иметь локальный эффект только на этом UIButton –