2016-12-28 4 views
-1

Это мой первый раз, когда я делаю приложение, имеющее «общий» дизайн, в котором текстовые поля и кнопки внутри ячеек tableView. Мне очень тяжело получать значения texFields в моих динамических ячейках tableView.Получить ссылку из TableViewCells в TableView iOS

Вот мой код:

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 и вы пытаетесь вызвать этот представить() функции. Любые идеи о том, как правильно получить значения текстовых полей внутри этих динамических ячеек?

EDIT: Точки аварии на nameCell

фатальная ошибка: неожиданно нашли ноль в то время как разворачивание необязательное значение

enter image description here

+0

Что такое сообщение, когда он выходит из строя ? – toddg

+0

Кроме того, на какой строке он падает? – Samantha

+0

см. Редактирование, ребята. – Glenn

ответ

1

Попробуйте сделать "если позволить" в чтобы получить это необязательное значение и избежать аварии с нулевыми значениями

Пример :

if let myNameCell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 1)) as! ProductDetailTableViewCell{ 
    // Here you must use 'myNameCell' 
} 

И для получения значения TextFields внутри клетки я хотел присвоить метку каждому TextField, а затем получить значение по этому пути:

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!" 
} 
+1

TAGS - единственный способ уху. Благодаря! – Glenn

Смежные вопросы