我正在尝试提取输入到文本字段的值。问题是这些文本字段是以编程方式在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]];
}
我的直觉是在视图消失后收集所有数据。但我不知道如何访问每个不同单元格中的每个不同的文本字段。
答案 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
。我希望这可以帮到你。