0
2つのテキストフィールドを持つ警告ウィンドウを実装しました。そして、私はいくつかのバリデーションを実行したい:テキストフィールドの1つが空白の場合(ユーザーが値を入力しなかった場合)、アプリケーションは「完了」ボタンを押してはいけません。 アラートを表示したくない場合は、空のデータを保存しないようにしてください。Swift3 UITextField in UIAlertボタンを押した後の検証
以下の機能を作成しました。 2人のガードをリターンで追加しました。しかし、この場合、ユーザーが何も入力しなかった場合、アラートが閉じて何も保存されません。私は警告窓を閉めたくない。
できる場合はどうすればできますか?答えは見つかりませんでした。私はthisの質問をチェックしましたが、それは私には当てはまりません。あなたの助けに感謝!
private func addTable() {
let alert = UIAlertController(title: NSLocalizedString("inputTableParams", comment: ""), message: nil, preferredStyle: .alert)
alert.addTextField(configurationHandler: configureTableNameTextField)
alert.addTextField(configurationHandler: configureTableCapacityTextField)
alert.textFields?[0].autocapitalizationType = .sentences
alert.textFields?[1].autocapitalizationType = .sentences
alert.addAction(UIAlertAction(title: NSLocalizedString("alertCancel", comment: ""), style: .cancel, handler: nil))
alert.addAction(UIAlertAction(title: NSLocalizedString("alertDone", comment: ""), style: .default, handler: { (UIAlertAction) in
guard self.tableNameTextField.text != "" else {return}
guard self.tableCapacityTextField.text != "" else {return}
let newTable = Table(tableName: self.tableNameTextField.text!, tableCapacity: Int(self.tableCapacityTextField.text!)!)
let result = try? TablesTable.getOrCreateTable(table: newTable)
if result != nil {
self.updateTableView()
}
}))
self.present(alert, animated: true, completion: {})
}