我创建了一个按钮来显示文本字段值(我使用了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
}
答案 0 :(得分:0)
是的,在这种情况下,您将获得所有变量的空字符串(val3,val4,val5)。
您可以通过以下两种方法获取文本字段值:
textFieldShouldEndEditing(_:)
learn from here about textField delegate methods。在此方法中,您可以将textField的文本设置为self.val3 = textField.text
之类的变量。您需要使用与cellForRowAtIndexPath
中使用的相同的开关案例。var firstNameField: UITextField?
)定义为类实例方法,然后在索引路径的行的单元格中分配这些变量值,如:
案例1的self.firstNameField = cell.text
等等,适用于所有textField案例。
现在,在完成按钮操作中使用self.firstNameField?.text
,然后您可以获取testField的当前文本。但我建议使用第一个