Изменение тегов во время цикла do-while - PullRequest
0 голосов
/ 17 августа 2011

Итак, у меня есть метод для циклического прохождения XML-документа.Документ получил ряд значений ответов, которые извлекаются и выводятся на экран в виде UISegmentedControls.Код, который я получил прямо сейчас:

- (void) traverseElement:(TBXMLElement *)element {
static CGFloat y = 300.0f;
static CGFloat dynamicHeight = 400.0f;
static int segmentId = 1;
    do {

    if([[TBXML elementName:element] isEqualToString:@"wcqAnswerValues"]) {

        NSString *segmentItemsStr = [TBXML textForElement:element];
        NSArray *segmentItemsArray = [segmentItemsStr componentsSeparatedByString:@";"];

        answer = [[UISegmentedControl alloc] initWithItems:segmentItemsArray];            
        answer.frame = CGRectMake(50, y, 400, 40);
        [answer addTarget:self action:@selector(textpopup:) forControlEvents:UIControlEventValueChanged];

        answer.segmentedControlStyle = UISegmentedControlStyleBar;
        answer.tag = segmentId;
        [scrollView addSubview:answer];

        scrollView.contentSize = CGSizeMake(768, dynamicHeight);

        [formulierText removeFromSuperview];

        [answer release];
        y += 40.0f;
        dynamicHeight += 40.0f;
        segmentId++;
    }

if ([[TBXML elementName:element] isEqualToString:@"formdata"]) {

        y = 300.0f;
        dynamicHeight = 400.0f;
        segmentId = 1;
    }

    // if the element has child elements, process them
    if (element->firstChild) 
        [self traverseElement:element->firstChild];

    // Obtain next sibling element
} while ((element = element->nextSibling));

}

-(void)textpopup:(UISegmentedControl *)sender {

        if (sender.tag == 1) {
        // if the tag of the sender is 1, then do something.
        }

}

Что я хочу добиться, это:

Каждый UISegmentedControl, который печатается на экране, должен иметь уникальный номер или идентификатор, поэтому яМожно отдельно назначать действия для них.Каков наилучший способ добиться этого?

РЕДАКТИРОВАТЬ: Исправлено.Я обновлю свой код.

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