我在Xcode 8中创建了一个包含五个单元格的tableview。每个单元格都有自己的标签和文本字段。我希望能够在单独的tableViewController文件/类中访问这些文本字段中的用户输入,然后使用用户输入执行操作。
我为每个单元格创建了一个swift文件/类。 我已将每个课程公之于众。 而且,在为每个文本字段创建IBOutlet时,我已经使它们符合以下格式:
public class NameCell: UITableviewCell {
@IBOutlet public weak var NameTextField!
override public func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override public func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
我认为我需要做的是在viewcontroller类中为每个类中的textfields声明一个变量。我想知道这是否可以做到?如果是这样,我如何从另一个类声明变量/文本字段?或者有更好的方法吗?
我正在思考以下几点:
var NameTextField.NameCell = ""
或者
var NameCell.NameTextField = ""
但这些显然是错误的。我还将textfield委托放在TableViewController类而不是NameCell类中。我不知道这是否有助于解决这个问题。
非常感谢任何帮助!
答案 0 :(得分:0)
确保正确声明您的IBOutlet变量。它应该是:
@IBOutlet weak var textField: NameTextField!
现在,要从单元格textField
访问文本,首先需要访问单元格本身。您可以致电var cell = tableView.cellForRow(at: indexPath) as! NameCell
,其中indexPath
是您尝试访问的单元格的cell.textField.text
。然后,您可以致电textField
。这将为您提供用户输入到给定单元格的{{1}}的文本。
另外,请务必阅读swift basics以了解变量的正确用法和类型注释,以及正确的命名约定。