iPhone OS: использование переменной NSString для указания свойства или ivar - PullRequest
0 голосов
/ 05 апреля 2010

У меня есть программа, которую я хочу либо скрыть, либо показать определенные кнопки UI в зависимости от определенных переменных, и все кнопки называются постепенно, например «button1, button2, button3».

Итак, я хочу перебирать кнопки, но я не знаю, как обращаться к кнопке в операторе присваивания, используя nsstring в качестве переменной внутри присваивания точечной нотации, например:

 for (int i = 1; i < weekday; i++) {
    int buttonIncrement = 0;
    NSString *tempString = [[NSString alloc] initWithFormat:
    @"calbutton%i", buttonIncrement];

 self.tempString.hidden = YES;
}

Часть назначения «tempString». Я хочу сказать ей вставить «calbuttonx», где x - номер кнопки.

Можете ли вы сделать это как-нибудь? если да, пожалуйста, объясните.

Ответы [ 2 ]

3 голосов
/ 05 апреля 2010

Использовать массив!


Если вы не можете использовать массив, вы можете ссылаться на свойство по строке с помощью Кодирование значения ключа (KVC) :

UIButton* button = [self valueForKey:tempString];
button.hidden = YES;
2 голосов
/ 06 апреля 2010

Вы также можете назначить тег каждой кнопке в IB и получить кнопку, связанную с тегом, используя

- (UIView *)viewWithTag:(NSInteger)tag

как определено для класса UIView, например:

for( int k = 0; k < 5; ++k ) {

    id subview = [self.view viewWithTag: k];

    if( subview ) { 

        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...