Check textfield and tableview scroll

uitextfield
uitableview

#1

Всем привет! у меня есть метод:

func checkEmptyFields() {
        for i in 0..<zoneArray.count {
            
            let indexPath = IndexPath(row: i, section: 0)
            let cell : DemoTableViewCell? = self.tableView.cellForRow(at: indexPath) as! DemoTableViewCell?
            let zone = self.zoneArray[indexPath.row]
        
            if zone.zoneName == nil {
                self.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
            } else {
                checkComplete = true
            }
                if cell?.zoneTextField.text == "" {
                checkComplete = false
                cell?.zoneTextField.becomeFirstResponder()
                showAlert(title: "Empty Zone Name", message: "Enter the name of the Zone \(zone.zoneNumber!)")
                    return
            
            }

            if zone.outletNumber == nil {
                
                self.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
            } else {
                checkComplete = true
            }
                if cell?.outletTextField.text == "" {
                checkComplete = false
                cell?.outletTextField.becomeFirstResponder()
                showAlert(title: "Empty No. of Outlet", message: "Enter the outlet's number of the Zone \(zone.zoneNumber!)")
                    return
            
            }
        }
    }

Я создаю таблицу, добавляю n-ое количество строк. Этот метод проверяет текстовые поля на наличие текста. И если текстовое поле пустое, то метод должен перевести курсор на первое пустое текстовое поле ( и откроется клавиатура). Этот метод работает только тогда, когда количество строк такое, что не нужно скролить таблицу, то есть все строки видны на экране полностью.

Но стоит мне добавить строк 15, и про скролить вниз, а затем вызвать этот метод - то таблица не скролится на первое текстовое поле (которое я не заполнил, соответственно).

Подскажите друзья, что не так?