Как динамически изменить заголовок кнопки (когда у bool есть определенное свойство)

Я изучаю цель C и начал с простого калькулятора. Я ударил пару стен, хотя. У меня есть 2 дисплея, текущий набираемый номер, и меньший, который отображает все, что было набрано до сих пор. У меня также есть кнопка «Очистить».

Я хочу, чтобы, если пользователь нажал кнопку «очистить» один раз, он очистил главный экран и изменил название на «AC» (все ясно). Если это тогда ударил снова Я хочу, чтобы он очистил меньший дисплей от всего, что было напечатано до сих пор.

Это все работает нормально, но у меня проблемы, потому что я хочу, чтобы кнопка пошла назад чтобы просто «очистить», когда пользователь начинает вводить другой номер.

У меня есть @property (неатомный) BOOL userIsInTheMiddleOfEnteringANumber;
и @synthesize для этого свойства.

Как я могу сделать так, чтобы всякий раз, когда userIsInTheMiddleOfEnteringANumber == YES, я мог установить кнопку очистки (или @property (nonatomic) BOOL allClear), которую мне нужно изменить?

1

Решение

Одним из решений является не @synthesize userIsInTheMiddleOfEnteringANumber собственности, и напишите код для него самостоятельно.

Добавить личное BOOL переменная для вашего класса, и напишите userIsInTheMiddleOfEnteringANumber а также setUserIsInTheMiddleOfEnteringANumber: методы. Получатель должен вернуть переменную «backing»; установщик должен проверить старое и новое значение, чтобы увидеть, является ли старое значение NO и новое значение YES, В этом случае установщик должен изменить название кнопки соответствующим образом.

0

Другие решения

в методе viewdidload добавьте название кнопки как понятное

- (void)viewDidLoad{
[super viewDidLoad];
[myButton setTitle:@"Clear" forState:UIControlStateNormal];
}

и в методе, который очищает все, сделайте заголовок кнопки AC

- (void)clearAllAndACMethod{
if(userIsInTheMiddleOfEnteringANumber==Yes)
{
[myButton setTitle:@"AC" forState:UIControlStateNormal];
userIsInTheMiddleOfEnteringANumber=NO;
}
else{
another type code and
[myButton setTitle:@"Clear" forState:UIControlStateNormal];

userIsInTheMiddleOfEnteringANumber=YES;
}
//remaining method with

}

Измените значение bool в соответствии с вашими потребностями, потому что я не правильно понял значение bool, я думаю. попробуйте это будет работать нормально

0

По вопросам рекламы [email protected]