访问tableView

时间:2016-05-21 22:37:55

标签: ios objective-c uitableview uitextfield

我正在尝试提取输入到文本字段的值。问题是这些文本字段是以编程方式在tableview的单元格中定义的。

-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:(BOOL)animated];
NSUInteger numOfRows=[userControls count];
for (int i =0; i<numOfRows; i++) {
    [self saveValueForRow:i];
}

}

#pragma save defaults
- (void)saveValueForRow :(int)index {
    NSString *userDataString=userEntryField.text; //how to access each text field, as this currently just accesses the first one in the table
    NSLog(userDataString);
   [[NSUserDefaults standardUserDefaults] setObject:userDataString   forKey:[controlKeys objectAtIndex:index]];
}

我的直觉是在视图消失后收集所有数据。但我不知道如何访问每个不同单元格中的每个不同的文本字段。

2 个答案:

答案 0 :(得分:4)

您需要将cellForRowAtIndexPath方法中的单元格标记设置为:

cell.tag = indexPath.row;

现在在获取textField的值时,您需要首先通过indexPath获取单元格,如:

#pragma save defaults
- (void)saveValueForRow :(int)index {
NSIndexPath *nowIndex = [NSIndexPath indexPathForRow:index inSection:0]
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:nowIndex];

NSString *userDataString = cell.userEntryField.text; //how to access each text field, as this currently just accesses the first one in the table
NSLog(userDataString);
[[NSUserDefaults standardUserDefaults] setObject:userDataString   forKey:[controlKeys objectAtIndex:index]];
}

希望这有帮助!

答案 1 :(得分:0)

您可以为每个tag设置UITextField,例如:

//...
textview.tag = indexPath.row;
//...

因此,您可以通过textField访问每个tag。我希望这可以帮到你。