ios从tableViewCell中的textfield获取文本值

ios从tableViewCell中的textfield获取文本值,ios,objective-c,uitableview,uitextfield,Ios,Objective C,Uitableview,Uitextfield,在我的ViewController中,我创建了一个名为UITextField*txtMyName 之后,我被添加到tableViewCell[cell addSubview:txtMyName]的文本字段中 我可以编辑文本字段中的文本,但当我从文本字段\u strFullName=txtMyName.text获取文本时 但是,它只能获取空值 我怎样才能解决这个问题 *****编辑**** if (indexPath.row == 0) { [self setFrameTextFi

在我的ViewController中,我创建了一个名为
UITextField*txtMyName
之后,我被添加到tableViewCell
[cell addSubview:txtMyName]的文本字段中

我可以编辑文本字段中的文本,但当我从文本字段
\u strFullName=txtMyName.text获取文本时

但是,它只能获取空值

我怎样才能解决这个问题

*****编辑****

if (indexPath.row == 0) {
        [self setFrameTextField:cell];
        [self CustomTextField:cell :txtMyName];
        if ([[dict_infoFriend objectForKey:@"Fullname"] isEqualToString:@" "]) {
            txtMyName.placeholder = @"Name";
        }
        else{
            txtMyName.text = [dict_infoFriend objectForKey:@"Fullname"];
        }
        [cell addSubview:txtMyName];
    }
else if (indexPath.row == 1){
        button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
            button.frame = CGRectMake(cell.frame.size.width - 10, 0, 130, 40);
        }
        else{
            button.frame = CGRectMake(cell.frame.size.width / 2 - 65, 0, 130, 40);
        }
        [self CustomBTN:button];
        [button addTarget:self action:@selector(ClickDone) forControlEvents:UIControlEventTouchUpInside];
        [cell addSubview:button];
    }

您还没有为文本字段分配内存,这就是您可以编辑但无法检索文本字段的原因。只需编写
txtMyName=[[UITextfield alloc]init]您可以将框架分配给文本字段,如
txtMyName=[[UITextfield alloc]initWithFrame:CGRectMake(x,y,width,height)]一旦您将内存分配给文本字段,您将从文本字段中检索文本

您尚未将内存分配给文本字段,这就是您可以编辑但无法检索文本字段的原因。只需编写
txtMyName=[[UITextfield alloc]init]您可以将框架分配给文本字段,如
txtMyName=[[UITextfield alloc]initWithFrame:CGRectMake(x,y,width,height)]一旦您将内存分配给textfield,您将从textfield中检索文本

因为您已将textfield添加到表格单元格中,您必须先获取单元格,然后使用textfield的标记才能获取文本

试着这样,

假设您有文本字段的标记,如
txtMyName.tag=100

-(void) ClickDone {
      NSIndexPath *indexPath = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath];
     UITextField *txtField = (UITextField *)[cell viewWithTag:100];
     _strFullName = txtField.text;
  }

由于已经将textfield添加到表单元格中,因此必须先获取单元格,然后使用textfield标记才能获取文本

试着这样,

假设您有文本字段的标记,如
txtMyName.tag=100

-(void) ClickDone {
      NSIndexPath *indexPath = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath];
     UITextField *txtField = (UITextField *)[cell viewWithTag:100];
     _strFullName = txtField.text;
  }


_strFullName=cell.txtMyName.text;是否在表视图中有多少单元格?否!我无法调用cell.txtMyName.text。因为,我不是在TableViewCell中创建的。我是在myViewController中创建的,之后,我添加到单元格以在TableView中显示编辑后的文本,是否有任何按钮?或者您必须在没有交互的情况下获取它?\u strFullName=cell.txtMyName.text;是否在表视图中有多少单元格?否!我无法调用cell.txtMyName.text。因为,我不是在TableViewCell中创建的。我是在myViewController中创建的,之后,我添加到单元格以在TableView中显示编辑后的文本,是否有任何按钮?或者您必须在没有交互的情况下获取它?我必须将内存和setframe分配给我的textfield.txtMyName=[[UITextField alloc]initWithFrame:CGRectMake(cell.frame.size.width-100,0300,40)];这是我调用的为textField分配内存和帧的方法。[self-setFrameTextField:单元格];您可以在我的代码中看到。我已将内存和setframe分配给我的textfield.txtMyName=[[UITextField alloc]initWithFrame:CGRectMake(cell.frame.size.width-100,0,300,40)];这是我调用的为textField分配内存和帧的方法。[self-setFrameTextField:单元格];你可以在我的代码中看到,它是有效的。谢谢但是,当单击“完成”时,它将创建UITextField,因此需要内存。如果您可以直接获得这样的文本,
\u strFullName=((UITextField*)[cell viewWithTag:100])。文本
@IOSDeveloper因为我们没有为
单元格
txtField
创建任何
alloc
,因此它没有内存。我们只是使用indexpath和标记获取已经分配的对象。所以,这不需要任何记忆,我明白!谢谢,成功了。谢谢但是,当单击“完成”时,它将创建UITextField,因此需要内存。如果您可以直接获得这样的文本,
\u strFullName=((UITextField*)[cell viewWithTag:100])。文本
@IOSDeveloper因为我们没有为
单元格
txtField
创建任何
alloc
,因此它没有内存。我们只是使用indexpath和标记获取已经分配的对象。所以,这不需要任何记忆,我明白!谢谢