从TableView iOS中的TableViewCells获取参考

时间:2016-12-28 14:13:57

标签: ios swift uitableview

这是我第一次做一个具有'通用'设计的应用程序,其中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

enter image description here

1 个答案:

答案 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!"
}