Динамический выбор кнопок - PullRequest
0 голосов
/ 12 июля 2011

Предположим, у меня есть две кнопки, которые являются выходами ивара.Один называется «Синий», а другой - «Красный».Теперь у меня есть NSString со значением «Red».Я хочу установить кнопку, определенную NSString, в состояние selected без использования if.

Я делаю не хочу сделать это:

NSString *button=@"Red";
if ([button isEqualtoString:@"Blue")
   self.blue.selected=YES; //self.blue and self.red are UIButtons
else
   self.red.selected=YES;

Это хорошо, если у вас есть две кнопки, но у меня гораздо больше, и этобыло бы довольно неуклюже и громоздко сделать это для 30 кнопок.

Я бы предпочел найти способ напрямую связать имя ивара UIButton со значением NSString.

Ответы [ 2 ]

6 голосов
/ 12 июля 2011

Поставьте строку в нижнем регистре, и вы можете использовать KVC для этого:

[self setValue:[NSNumber numberWithBool:YES]
    forKeyPath:[NSString stringWithFormat:@"%@.selected", button]];
3 голосов
/ 12 июля 2011

Вы можете поместить кнопки в словарь:

[NSDictionaryName addObject: UIButtonName forKey: @"blue"];

или что-то в этом роде:

[NSDictionaryName objectForKey:@"blue"].selected = YES;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...