将数据从自定义表格单元格传递到文本字段

时间:2015-01-15 08:26:12

标签: ios

我正在创建一个地址簿的演示应用程序,它将人员信息保存在一个数组中,并将其显示在自定义表格单元格中。

第一个控制器将用户输入的信息保存在数组的文本字段中。 第二个控制器在自定义表格单元格中显示信息。 第三个控制器与第一个控制器相同,唯一的区别是它不会用于存储数据,而是用于更新数据。 我现在想要的是更新表格单元格数据。我创建了一个更新按钮,点击我正在转向第三个控制器。

当我点击更新按钮时,我想要的是在特定单元格中显示的信息,传递给第三个视图控制器文本字段。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为您将数据存储在某个数组或类似结构中。所以你可以像这样从中获取数据

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {
    MyThirdViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ThirdViewController"];
    vc.dataToDisplay = self.myDataArray[indexPath.row];
}

然后在第三个视图控制器中,您将获得需要显示的数据。 例如,如果您知道新数组中的数据顺序,则可以填写像这样的文本字段

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    //if your data is an array
    self.firstTextField.text = self.dataToDisplay[0];
    self.secondTextField.text = self.dataToDisplay[1];
    //and so on
    //if your data is a dictionary
    self.firstTextField.text = self.dataToDisplay[@"name"];  //for string objects
    self.secondTextField.text = [self.dataToDisplay[@"age"] integerValue];  //for integer values
}

答案 1 :(得分:0)

//in your third viewcontroller.h
@property NSString * textfieldname;
@property NSString * textfieldage;

//in your second viewcontroller.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

if([[segue identifier] isEqualToString:@"identifiername"]){

NSIndexPath *ip = [yourtablename indexPathForSelectedRow];
thirdviewcontrollerr *targetVC = [segue destinationViewController];

    targetVC.textfieldname=[[arrayname objectatindex:ip.row]valueforkey:name];
    targetVC.textfieldage=[[arrayname objectatindex:ip.row]valueforkey:age];
//in your thirdviewcontroller.m
 nametextfield.text=_textfieldname;
 agetextfield.text=_textfieldage;