Получение значения текстовых полей, которые создаются во время выполнения - PullRequest
0 голосов
/ 17 августа 2011

Я строю форму при нажатии кнопки. Когда кнопка нажата, ASIHTTPRequest к серверу получает отправку. Этот сервер возвращает XML-документ, который я создаю в форме.

метод построения формы выглядит так:

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

    do {

    if ([[TBXML elementName:element] isEqualToString:@"wcqQuestionText"]) {
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(75, y, 200, 50)];
        label.text = [TBXML textForElement:element];
        [scrollView addSubview:label];
        scrollView.contentSize = CGSizeMake(768, dynamicHeight);
        [formulierText removeFromSuperview];
        [label release];
        y += 50.0f;
        dynamicHeight += 50.0f;

    }

    if([[TBXML elementName:element] isEqualToString:@"wcqAnswerValues"]) {
        NSString *segmentItemsStr = [TBXML textForElement:element];
        NSArray *segmentItemsArray = [segmentItemsStr componentsSeparatedByString:@";"];
        UISegmentedControl *answer = [[UISegmentedControl alloc] initWithItems:segmentItemsArray];            
        answer.frame = CGRectMake(50, y, 400, 40);
        [answer addTarget:self action:@selector(textpopup:) forControlEvents:UIControlEventValueChanged];
        answer.segmentedControlStyle = UISegmentedControlStyleBar;
        [scrollView addSubview:answer];
        scrollView.contentSize = CGSizeMake(768, dynamicHeight);
        [formulierText removeFromSuperview];
        [answer release];
        y += 40.0f;
        dynamicHeight += 40.0f;
    }

    if([[TBXML elementName:element] isEqualToString:@"rayonfiliaal"]) {   
    NSString *rayonFiliaal = [TBXML textForElement:element];
    [stringsArray addObject:rayonFiliaal];

    }

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

    NSString *filiaalNaam = [TBXML textForElement:element];    
    [filiaalArray addObject:filiaalNaam];

    }       
    if ([[TBXML elementName:element] isEqualToString:@"formdata"]) {  
        y = 300.0f;
        dynamicHeight = 400.0f;
    }
    // if the element has child elements, process them
    if (element->firstChild) 
        [self traverseElement:element->firstChild];
    // Obtain next sibling element
} while ((element = element->nextSibling));
}

То, что я хотел сделать, это:

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

1 Ответ

0 голосов
/ 17 августа 2011

Вы можете просто сохранить эти значения в списке.

Эта ссылка должна показать вам, как создать список.

Руководство по программированию списка свойств

Вы можете просто прочитать каждое из значений в метке, используя этот метод [label text];

Для сегментированного управления вы должны использовать следующий метод [answer titleForSegmentAtIndex:index];

Эти методывернуть строку NSString, которую можно сохранить в NSDictionary.

После того, как вы получите эти значения, просто создайте объект NSDictionary и вызовите [dictionary writeToFile: pathToDirectory atomically: YES];

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