Objective-C:获取每个表行的文本字段值

时间:2016-08-31 13:16:01

标签: ios objective-c uitextfield custom-cell

我有海关单元的表格视图。每个单元格都有两个文本字段。桌子下面是一个按钮。我在表视图控制器中有一个“buttonPressed”动作。如何在此方法中获取每个表行的文本字段值?

以下是自定义单元格标题文件:

<receiver android:name=".MyMediaButtonReceiver">
<intent-filter>
    <action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>

在表视图控制器中我有这个方法:

...

@interface CustomCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UITextField *name;
@property (weak, nonatomic) IBOutlet UITextField *age;

@end

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:5)

根据ios设计模式,您需要在自定义单元格的委托中存储数组中textfield的值。但是对于您的示例,如果您希望所有文本字段值都是相同的位置,那么下面是您的解决方案。假设saveBtnPressed操作在viewController中(不在Customcell中)。假设有5行。

- (IBAction)saveBtnPressed:(id)sender{

       NSMutableArray *userDetails = [[NSMutableArray alloc] init];
       for(i=0;i<5;i++){
           CustomCell *cell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
           NSDictionary *userDictionary = [[NSDictionary alloc] initWithObjectsAndKeys: cell.name.text, @"name", cell.age.text, @"age", nil];
          [userDetails addObject:userDictionary];
       }
}

userDetailsArray将包含所有单元格的详细信息。

答案 1 :(得分:0)

尝试以下步骤:

cellForRowAtIndexPath为两个textField设置代码。

循环遍历dataSource数组计数,这与行数相同。

获取循环中的单元格,使用标记获取textFields并将文本保存到字典数组:

- (IBAction)OnsaveCilck:(id)sender{

    NSMutableArray *Array = [NSMutableArray array];

    for (int i=0; i < YourDataSourceArray.Count; i++){ 

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

        CustomCell *cell = [tableview cellForRowAtIndexPath:indexPath];

        NSMutableDictionary *Dict = [NSMutableDictionary dictionary];

        UITextField *TextName= (UITextField*)[cell.contentView viewWithTag:100];//tag given cellForRowAtIndexPath
        UITextField *TextAge= (UITextField*)[cell.contentView viewWithTag:200];//tag given cellForRowAtIndexPath

        [Dict setObject:TextName.text forKey:@"name"];
        [Dict setObject:TextAge.text forKey:@"age"];

        [Array addObject:TempDict];

    }

    //Final array contains all data

    NSLog(@"array == %@",Array);
}