0
votes

Validation de non vide sur le bouton Suivant pour plusieurs fichiers uitextfields dans UitailView Cell

Dans mon contrôleur d'affichage, j'ai une vue de table dans laquelle je loge plusieurs cellules de la TableView. Certains ont des boutons Uitextfield, étiquettes, radio et chèques. Maintenant, j'ai fait toute la pièce montrant et entrant des données dans la cellule de TableView mais ne pouvant pas vérifier si un champ à gauche est vide. Sur le bouton Cliquez dans mon contrôleur, j'ai besoin de vérifier cette validation si tous les champs sont non vides. Ou comment puis-je obtenir des données de chaque champ sur le bouton Cliquez sur le bouton. Voici mon code de coordonnée de l'index cellulaire qui donnera une idée de DIFF Cell, je suis chargé. Comment puis-je valider si mon uitéxtfield est vide et que le bouton radio est vérifié. XXX


0 commentaires

3 Réponses :


0
votes

Je pense que vous pouvez implémenter uitextfieldelegate pour suivre et mettre à jour vos données, pour uableviewcell s avec uitextfield . Mais cela vous oblige à écrire implémenter le délégué texte dans chacune des cellules où vous devez mettre à jour votre jeu de données. De plus, pour les contrôles de commutation et les cases à cocher, vous pouvez surveiller leur ValueChageDanged Event.

par exemple xxx


3 commentaires

En fait, c'est mon erreur, je n'ai pas mentionné où je dois mettre en œuvre la validation dans ma question, j'ai besoin de vérifier la validation sur le bouton Cliquez sur laquelle il navigue vers un autre contrôleur d'affichage. Si un champ de texte est laissé vide sur le bouton reste décochez Je dois afficher une erreur ou une fenêtre contextuelle. Fondamentalement, je dois éviter l'utilisateur de naviguer vers un autre contrôleur d'affichage jusqu'à ce que tous les dépôts soient remplis. Comment puis-je obtenir des données saisies dans Filelds sur le bouton Cliquez sur le bouton Filelds.


Votre bouton est-il une partie de UitailViewCell? Probablement pas, dans ce cas, il suffit de mettre à jour vos données comme mentionné dans la réponse et de valider ces données avant la navigation réelle.


BHAI: Merci d'avoir mis à jour la réponse, cela m'a vraiment aidé à une approche. Veuillez mettre la mise à jour avec une validation vide comme je l'ai fait dans ma réponse. Si cela fonctionne, je vais marquer votre réponse comme acceptée.



0
votes

Vous aurez besoin de stocker ces données quelque part, spécialement parce que UitailView réutiliser ses cellules. Vous pourriez donc perdre ce qui a été saisi si l'utilisateur fait défiler.

En supposant que vous avez un tableau où provient les informations de chaque cellule, vous pouvez créer un drapeau qui explique si l'utilisateur a répondu à cette question. Sur CellfornatDindexPath Vous vérifierez si le champ est vide et rechargez la réponse / l'état.

Après cela, vous pouvez créer une méthode de validation qui doit être appelée après chaque entrée de cellule, en fonction de votre réseau local de champs + réponses.


1 commentaires

J'ai différentes classes TableViewCell pour chaque cellule où j'ai effectué le travail de sélection et de saisie de données et de leur montrer que chaque cellule a une fonctionnalité diiférente. Sur CellfornorTideDexPath Je peux vérifier si les champs sont vides ou non, mais la validation est nécessaire de définir le bouton Cliquez sur l'emplacement de la navigation terminée. J'ai besoin de voir maintenant comment puis-je accéder à la cellule de TableView / TableView pour vérifier s'il est vide sur le bouton Cliquez.



0
votes

Toute autre validation comme type numérique et type de date que j'ai fait en classe de cellules. Je sais que ce n'est pas la bonne façon de le faire. Nous pouvons enregistrer nos valeurs à la classe modèle et utiliser la classe modèle au lieu de le faire. Faire de cette manière peut réaliser une défaillance de la validation lorsque nous faites défiler notre TableView, mais pour l'instant, cela fonctionne dans mon code. J'attends toujours de le faire d'une manière d'écrire. Je ne marquerai pas ma question comme répondu

au bouton Cliquez sur P>

@IBAction func nextButtonClicked(_ sender: Any) {
        let nameCell = self.tableView.cellForRow(at: IndexPath(row: 1, section: 0)) as? NameTableViewCell
        if (nameCell?.nameTextField.text!.isEmpty)! {
           Log.i("TextField is Empty---" )
        }
        let startEndDateCell = self.tableView.cellForRow(at: IndexPath(row : 2,section : 0)) as? StartEnddateTableViewCell
        if((startEndDateCell?.startDateTextField.text!.isEmpty)! || (startEndDateCell?.endDateTextField.text!.isEmpty)!){
            Log.i("Start And End Date Empty")
        }
        let amountCell = self.tableView.cellForRow(at: IndexPath(row : 3, section : 0))as? AmountTableViewCell
        if (amountCell?.amountTextField.text!.isEmpty)! {
            Log.i("Amount Cell Empty---")
        }

        else{
        let vc = NextViewController(nibName: "NextViewController", bundle: nil)
        navigationController?.pushViewController(vc, animated: true )
        }
    }



0 commentaires