这是我第一次做一个具有'通用'设计的应用程序,其中textFields和按钮在tableView单元格中 。我很难在我的动态tableView单元格中获取texFields的值。
这是我的代码:
func submit() {
// cells
let nameCell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 1)) as! ProductDetailTableViewCell
let shortDescriptionCell = self.tableView.cellForRow(at: IndexPath(row: 1, section: 1)) as! ProductDetailTableViewCell
// data
let name = nameCell.textField_Detail.text!
...
...
}
然而,当你滚动到tableView的底部并且你试图调用这个 submit()函数时,它会崩溃应用程序。有关如何在这些动态单元格中正确获取textFields值的任何想法吗?
编辑: 崩溃指向 nameCell
致命错误:在解包可选值时意外发现nil
答案 0 :(得分:1)
尝试执行“if let”以获取此可选值并避免使用nil值崩溃
示例:
if let myNameCell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 1)) as! ProductDetailTableViewCell{
// Here you must use 'myNameCell'
}
为了获取单元格内TextFields的值,我想为每个TextField分配一个Tag,然后通过这种方式获取值:
if let myNameCell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 1)) as! ProductDetailTableViewCell{
(myNameCell.contentView.viewWithTag(3) as! UILabel).text = "bla bla bla"
(myNameCell.contentView.viewWithTag(3) as! UITextField).text = "Some text!"
}