我做了一个按钮来显示文本字段值

时间:2017-06-22 05:00:00

标签: swift

我创建了一个按钮来显示文本字段值(我使用了cellForRowAtIndexPath来输入值)但是我第一次点击时无法显示它们

显示文本字段值的功能:

func DoneA(sender: UIButton!) {

        print("Action called")
        print(val3)
        print(val4)
        print(val5)

}

然后输入文本字段值:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

     let cell = tableView.dequeueReusableCellWithIdentifier("cell55", forIndexPath: indexPath) as!EditProfileTableViewCell


    switch (indexPath.row)
    {

    case 0:

         cell.lab.text = "Photo"
         let imageName = "avatar.png"
         let image = UIImage(named: imageName)
         let newImage = resizeImage(image!, toTheSize: CGSizeMake(70, 70))
         let cellImageLayer: CALayer?  = cell.avatar.layer
         cellImageLayer!.cornerRadius = cellImageLayer!.frame.size.width / 2
         cellImageLayer!.masksToBounds = true
         cell.avatar.image = newImage
         cell.txt.hidden = true




    case 1:
        cell.lab.text = "Firstname"
        //cell.txt.text = self.value1
        val3 = cell.txt.text!




    case 2:
        cell.lab.text = "Lastname"
       // cell.txt.text = self.value2
        val4 =  cell.txt.text!

    case 3:
        cell.lab.text = "Username"
        //cell.txt.text = self.value3
        val5 =  cell.txt.text!





    default :
        break
    }



    return cell


}

1 个答案:

答案 0 :(得分:0)

是的,在这种情况下,您将获得所有变量的空字符串(val3,val4,val5)。

您可以通过以下两种方法获取文本字段值:

  1. 使用textField委托方法textFieldShouldEndEditing(_:) learn from here about textField delegate methods。在此方法中,您可以将textField的文本设置为self.val3 = textField.text之类的变量。您需要使用与cellForRowAtIndexPath中使用的相同的开关案例。
  2. 您可以将三个textField变量(例如var firstNameField: UITextField?)定义为类实例方法,然后在索引路径的行的单元格中分配这些变量值,如: 案例1的self.firstNameField = cell.text等等,适用于所有textField案例。 现在,在完成按钮操作中使用self.firstNameField?.text,然后您可以获取testField的当前文本。
  3. 但我建议使用第一个