Сделайте сетевой вызов, когда введено текстовое поле - PullRequest
0 голосов
/ 18 июня 2020

У меня есть предупреждение с текстовым полем, и я хотел бы позвонить, если пользователь вводит что-то в текстовое поле и подтверждает это. Я не понимаю, как справиться с этим рабочим процессом.

 func btnTapped(cell: UICollectionViewCell) {
    let indexPath = self.collectionView.indexPath(for: cell)
    openAlert()
    // I want to move the following part once user enters textfield in the alertview
    fetchData(urlString: url, data: data[indexPath.row]) { [weak self] (response, error) in
        if error == nil
        {
            DispatchQueue.main.async {
                //do any ui update here!
                self?.collectionView.reloadData()
            }
        }
     }
  }

  func openAlert(){
    let alertController = UIAlertController(title: "Alert", message: "", preferredStyle: .alert)
    alertController.addTextField { (textField : UITextField!) -> Void in
        textField.placeholder = "Enter reason"
    }

    let saveAction = UIAlertAction(title: "Confirm", style: .default, handler: { alert -> Void in
        if let textField = alertController.textFields?[0] {
            if textField.text!.count > 0 {
                print("Text :: \(textField.text ?? "")")
            }
        }
    })

    let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: {
        (action : UIAlertAction!) -> Void in })

    alertController.addAction(cancelAction)
    alertController.addAction(saveAction)

    alertController.preferredAction = saveAction

    self.present(alertController, animated: true, completion: nil)
}

1 Ответ

0 голосов
/ 18 июня 2020

Вам нужно работать с делегатами текстового поля и использовать textFieldDidChange, затем каждый раз, когда текст изменяется в предупреждении, вызывайте API. Вот краткий пример:

func textFieldDidChange(_ textField: UITextField) {

    // Make API call here

}

Затем в блоке завершения для вызова API установите любые данные, которые вы хотите, в зависимости от того, подтвердил ли API или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...