如何从动态单元ios读取数据

时间:2016-09-07 06:32:09

标签: ios objective-c uitableview dynamic

如何获取Dynamic tableview单元格数据。 Dynamic page 我有这样的表格视图。所有单元格都是动态创建的。 我想在按下提交按钮时获取所有文本(flavor和%)数据。 问题是我动态创建文本。所以我无法单独识别文本框。如何从动态文本框中获取数据?

6 个答案:

答案 0 :(得分:1)

您可以将tag设置为textfield,然后您可以通过该标记访问它们。

例如,

  UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 200, 30)];

textField.tag = 100;  //set tag

UITextField *textField1 = (UITextField*)[self.view viewWithTag:100]; //retreive by tag

因此,您可以管理动态制作的textfields

更新:

然后分别设置两个标签100和101。现在你必须先获得单元格,然后从那个单元格中你可以得到你的textfields所以按钮点击首先得到所有单元格,然后你可以从那个单元格得到textfield,如:

  UITextField *textField = (UITextField*)[cell viewWithTag:100];

所以,你必须先按下按钮的单元格。

答案 1 :(得分:1)

将标记设置为自定义单元格中的uitextfield

For eg.

cell.lblFlavour.tag = indexPath.row;
cell.lblPercent.tag = indexPath.row;

现在,根据indexPath访问您的uitextfield

答案 2 :(得分:1)

使用tag属性唯一标识每个UI组件。在为每行创建tagtextFields后,将相同的button属性分配给下一行,然后使用代码获取tag值。

设置tag

self.yourTextfield.tag = 100;
self.yourbutton.tag = 100;

// set action method to uibutton 
[cell.yourButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

使用UI属性获取tag组件:

-(IBAction)buttonPressed:(id)sender{
    // here get all ui component using tag 
    UIButton *button = (UIButton *)sender;
    NSLog(@"%d", [button tag]);
}

或者您可以使用方法didSelectRowAtIndexPath来获取值,请参阅代码:

- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    NSLog(@"getting index path %@",indexPath);

    NSLog(@"getting index path %@",cell.yourTextField.text);

}

答案 3 :(得分:0)

UITableView的主要思想是将数据存储到数据源,而不是存储到单元格。当你点击" +"按钮在导航栏上,您应该将新项目添加到数组中,然后调用[tableView reloadData]。所以UITableView只代表数组中的数据。当按下提交按钮时,您只需枚举一个数据源数组并从每一行获取所有文本。

当您在单元格内的文本字段中点按文本时,可以使用delegatesblocks将数据存储到数组中。

答案 4 :(得分:0)

尝试以下代码:

点击提交按钮

  for (int i=0; i < [[tableView visibleCells] count]; i++)
{
  //yourArrayname is the number of rows in the UITableView /Or UITableView visible cells

            NSIndexPath *indexPath = [NSIndexPath indexPathForRow: i   inSection: 0];

            CustomTableViewCell *cell = [tblExperience cellForRowAtIndexPath:indexPath];

                    for (UIView *view in  cell.contentView.subviews){

                    if ([view isKindOfClass:[UITextField class]]){

                    UITextField* CurrentTextField = (UITextField *)view;
                NSLog(@"val %d  %@",i,CurrentTextField.text);

                [finalArray addObject:CurrentTextField.text];
                }
     }
     }

答案 5 :(得分:0)

为文本字段分配动态标记,实现文本字段委托,并在文本字段结束编辑时将数据保存在数组中。像这样的东西

-(void)textFieldDidEndEditing:(UITextField *)textField { 
    [_array insertObject:textField.text atIndex:textField.tag];
}