Проверьте textField в каждой строке tableView

Вот такая ситуация: у меня есть tableView с 3 строками. В этом tableView есть один прототип tableVIewCell с текстовым полем. Это textField используется в каждой строке tableView (по-разному). Мой вопрос: как проверить, является ли каждое текстовое поле пустым? Я предполагаю, что оператор If, но я не понимаю, как проверить все текстовые поля по отдельности. Кто-нибудь может мне помочь, пожалуйста?

Пример моего tableView: http://imagizer.imageshack.us/a/img540/2130/UsUNO3.png


person TheBlueTurtle    schedule 20.08.2015    source источник


Ответы (4)


Мне приходилось делать именно это в прошлом, вот метод, который я использовал:

for index in 0...(cellCount - 1) {

            var indexpath = NSIndexPath(forRow: index, inSection: 0)
            if let cellAtIndex = tableView.cellForRowAtIndexPath(indexpath) as? ContestantsTableViewCell {
                var newContestantString = cellAtIndex.contestantNameField.text

                if !newContestantString.isEmpty {
                    contestants.append(newContestantString)
                }
            }
        }

Я просто получаю ячейку по пути индекса, используя cellForRowAtIndexPath, и получаю свойство из ячейки, приводя его к своему пользовательскому типу.

person Cole    schedule 20.08.2015

Если вы знаете, что все время будут отображаться только 3 ячейки, вы можете сохранить ссылку на каждую ячейку и текстовое поле каждой ячейки и проверить длину, когда это необходимо.

person gontovnik    schedule 20.08.2015

Ваше текстовое поле можно проверить в каждой строке с помощью indexpath.row(Tableview)

if(indexpath.row == 0){
    if(cell.textfield.text == "")
    {
      //1st textfiled empty
    }

}
else if(indexpath.row == 1){
  if(cell.textfield.text == "")
    {
      //2nd textfiled empty
    }
}
else if(indexpath.row == 2){
 if(cell.textfield.text == "")
    {
      //3rd textfiled empty
    }
}
person Manikandan D    schedule 20.08.2015
comment
это будет работать, но как мы можем добавить все тексты текстовых полей в ячейки в массив? - person Saeed Rahmatolahi; 23.12.2017

Хорошо, вы можете создать функцию, как показано ниже. Вы можете использовать эту функцию для любого количества ячеек, не используйте условие if else. Вы также можете использовать эту функцию для проверки текстового поля.

func getCellsDataOn() -> Bool {
        for section in 0 ..< self.tableView.numberOfSections {
            for row in 0 ..< self.tableView.numberOfRows(inSection: section) {
                let indexPath = NSIndexPath(row: row, section: section)
                let cell = self.tableView.cellForRow(at: indexPath as IndexPath) as! YourCell
                if (cell.txtField!.text! != "") {
                    print("Not Empty")
                    //Handle your function 
                }else {
                    print("Empty")
                    return false
                }
            }
        }
        return true
    }

Надеюсь, это поможет. Спасибо.

person Krunal Nagvadia    schedule 03.09.2019