1

我正在编写一个UITableView内部有UIViewController. 使用UITableView原型单元格,每个单元格内部都是一个UITextField. 正如您可能猜到的那样,视图是用户要填写的表单。

当用户单击 UI 中的按钮时,应触发一个事件,其中UITextField收集正在显示的每个 s 的所有文本值,以便将数据发送到服务器。

我无法访问单元格的UITextField属性,因此我可以获取文本值。

我的部分代码:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIDentifier = @"Cell";
    AddCardCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIDentifier forIndexPath:indexPath];

    if (cell == nil) {
        cell = [[AddCardCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIDentifier];
    }

    cell.campoTextField.placeholder = [placeholders objectAtIndex:indexPath.row];
    cell.tituloLabel.text = [titulosCampos objectAtIndex:indexPath.row];

    return cell;
}

我的数据源的设置:

titulosCampos = [NSArray arrayWithObjects: @"Nombre", @"Correo", nil];
placeholders = [NSArray arrayWithObjects: @"Oscar Swanros", @"dev@swanros.com", nil];
4

2 回答 2

2

您可以检索存储在所有单元格中的文本campoTextField,然后使用此代码.....

NSMutableArray *titulosCampoTextArray = [[NSMutableArray alloc] init];
for (int i = 0; i < titulosCampos.count; i++) {

    AddCardCell *cell = (AddCardCell*)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
    [titulosCampoTextArray addObject:cell.campoTextField.text];
}
NSLog(@"Data in titulosCampoText array %@",titulosCampoTextArray);

希望这会对你有所帮助..:-)

于 2013-03-29T04:00:55.300 回答
0

我假设您AddCardCell是文本字段的代表。最好的方法是让你的单元类声明它自己的委托协议。然后,您的视图控制器将成为单元格的代表。然后,您的单元格应实现文本字段的委托方法以检测文本何时更改。然后单元格应该告诉它的代表有新的文本。文本应该是委托方法中的参数之一。您的视图控制器将实现此单元委托方法。然后,视图控制器将使用更新后的文本更新数据模型。

点击按钮时,所有单元格中的文本都已经在数据模型中。

于 2013-03-29T03:23:45.737 回答