Итак, у меня есть метод для циклического прохождения 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, который печатается на экране, должен иметь уникальный номер или идентификатор, поэтому яМожно отдельно назначать действия для них.Каков наилучший способ добиться этого?
РЕДАКТИРОВАТЬ: Исправлено.Я обновлю свой код.