изменить текст кнопки из другого метода, когда кнопки находятся в подклассе? - PullRequest
0 голосов
/ 06 июня 2011

Как получить доступ к кнопке, которая находится в подпредставлении представления?

У меня есть viewController 'GamePlay', в котором есть вид прокрутки, называемый 'gameScroll'. Внутри этого прокрутки У меня есть около 100 кнопок, каждая с тегом, и я хочу иметь возможность изменить текст кнопки другим способом.

- (void) viewDidLoad {
  //Created buttons in a for-loop, assigning each a tag
    //numOfButtons is total number of buttons created
}

Я полагаю, это будет что-то вроде этого? но я не могу найти ответ о том, как именно я это делаю, когда кнопка находится в подпредставлении

- (void) otherMethod {

  for (int i=0; i<numOfButtons; i++) {
    // tagsForAction = get list of buttons that need to be changed from another array

    for (j=0; j<tagsForAction.length; j++) {
      intTagForAction = [tagsForAction objectAtIndex:j];

      if (i = tagForAction) {
        UIButton* button = [Gameplay.gameScroll.view viewWithTag:tagForAction];
        button.title = @"A";
      }    
    }
  }
}

Я знаю, что этот код не совсем верен. Я просто даю вам представление о процессе. Я могу сделать все, кроме этой части в операторе if:

UIButton* button = [Gameplay.gameScroll.view viewWithTag:tagForAction];
button.title = @"A";

так как мне изменить текст этих кнопок?

Ответы [ 2 ]

1 голос
/ 07 июня 2011
NSArray *subViewList = [gameScroll subviews];
for (id button in subViewList)
{
    if ([button isKindOfClass:[UIButton class]]) 
    {
                [button setTitle:@"OK" forState:UIControlStateNormal];
            }
    }

Попробуйте этот код

1 голос
/ 06 июня 2011

Вам не нужно использовать цикл for подобным образом, вы можете получить массив подпредставлений из любого представления, выполнив что-то вроде [someView subviews].Итак, внутри вашей функции otherMethod вы можете сделать что-то вроде:

for (UIView *v in [gameScroll subviews]) {
    if (v.tag == <some_int_here>) {
        [v setTitle:@"Some other title" forState:UIControlStateNormal];
    }
}

Я не совсем уверен, каков ваш критерий для определения того, какие кнопки в представлении gameScroll должны быть обновлены, ноВы можете работать здесь.

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