У меня есть пользовательский UIButton в моем viewcontroller, который должен иметь изображение красного или синего сердца в зависимости от значения переменной при загрузке viewcontroller.Если пользователь нажимает кнопку, он меняет значение «Красный / Синий» в модели домена и также должен переключать изображение кнопки.Цвет кнопки будет загружаться правильно, если я вызову следующий код в ViewWillAppear:
if ([self.color isBlue])
self.colorButton.imageview.image = [UIImage imageNamed:@"blueHeart.png"];
else
self.colorButton.imageview.image = [UIImage imageNamed:@"redHeart.png"];
Но я не могу заставить его изменить цвет при нажатии кнопки.Когда кнопка нажата, вызывается мой метод toggleColor: action:
- (IBAction)toggleColor:(id)sender
{
if ([self.color isBlue])
{
[self.color makeRed];
self.colorButton.imageView.image = [UIImage imageNamed:@"redHeart.png"];
}
else
{
[self.color makeBlue];
self.colorButton.imageView.image = [UIImage imageNamed:@"blueHeart.png"];
}
}
Значения обновляются в переменной color
, как и должно быть, но цвет кнопки не меняется.(Я проверял в отладчике, что все строки кода выполняются так, как они должны быть.) Я пытался использовать [button setImage: forState:]
и [button setBackgroundImage: forState:]
, но они не ведут себя должным образом.Может кто-нибудь, пожалуйста, просто проведите меня через шаги для метода ViewWillAppear: (или ViewDidLoad :) и моего метода toggleColor:?Я что-то здесь упускаю.