我创建了一个带有TabelViewCell的nib,它包含一个标签和一个TextField,然后我只用两行在TableView中加载这个单元格。我想捕获一个项目的名称和它的价格,所以我更新了cellForRowAtIndexPath方法中的每个标签,因为我可以访问indexPath.row值。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleCellIdentifier = @"AddBudgetItemCell";
SCAddBudgetItemCell *cell = (SCAddBudgetItemCell *)[tableView dequeueReusableCellWithIdentifier:simpleCellIdentifier];
if(cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:simpleCellIdentifier owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.dataTextField.delegate = self;
switch (indexPath.row)
{
case 0:
cell.titleLabel.text = @"Item";
break;
case 1:
cell.titleLabel.text = @"Price ¥";
break;
default:
break;
}
return cell;
}
但是我不知道如何从TextField中检索数据,因为我无法访问我创建的变量“cell”和IndexPath.row值。
答案 0 :(得分:0)
据我了解,您有两种选择。如果你的SCAddBudgetItemCell
里面有一个包含textfield字符串的属性,那么你可以通过像cell.yourtextfield.text
这样的东西从你的viewcontroller访问它(其中yourtexfield是你的SCAddBudgetItemCell里面的UITextView。
另一个选项是让视图控制器响应UITextFieldDelegate,并在用户通过实现委托方法对其进行编辑时存储字符串
- (void)textFieldDidBeginEditing:(UITextField *)textField{
//Whenever people start editing your textfield
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
//
return YES;
}
-(void)textFieldDidEndEditing:(UITextField *)textField
{
//This is obvious. Whenever they end
}