web-dev-qa-db-fra.com

Comment afficher et / ou masquer une sous-vue avec swift

J'ai donc créé un ViewControl dans mon storyboard avec 3 sous-vues. Chacune représente une vue différente que je veux montrer en fonction de la ligne sélectionnée dans l’écran précédent (NavControl). Je commence par toutes les sous-vues masquées via l'attribut "masqué" de l'inspecteur d'attributs en cours de vérification. Tous les objets dans chacune de ces vues ne sont PAS cachés, mais sont cachés car la sous-vue elle-même est cachée (évidemment). En pensant que je pourrais utiliser l'attribut tag, j'ai attribué une balise (0, 1 et 2) à chacune des trois sous-vues, mais je ne vois pas comment l'utiliser non plus (juste au cas où cela serait utile pour me fournir une option comment faire cela, je voulais le mentionner ici).

Alors, comment diable puis-je montrer et ensuite cacher l'une de ces sous-vues? Je ne veux pas passer en revue chaque objet dans une sous-vue et basculer sa propriété cachée sur vrai/faux. Je pense que je devrais pouvoir simplement "afficher/cacher" la totalité de la sous-vue. obtenant ainsi le même résultat, mais beaucoup plus succinctement.

Je ne trouve rien qui puisse m'aider via des recherches Web ou des recherches stackoverflow.

Mon code est très simple. Je capture la ligne sélectionnée dans l'écran précédent et la passe à une variable de l'écran de détails contenant les sous-vues. Je sais que cela fonctionne car j'ai configuré println () sur la fonction viewDidLoad des écrans de détail. Il ne me reste donc plus qu'à entrer dans chacune de ces conditions et à lui dire quelle sous-vue afficher et/ou masquer.

Merci j'apprécie toute l'aide de ces communautés! Je serais perdu sans cela.

27
jammyman34

Vous devez créer IBOutlets pour chacune des trois sous-vues. Ensuite, vous pouvez afficher/masquer chacun d’eux directement à partir de ces références. Si vous masquez une vue, les sous-vues sont automatiquement masquées.

Une fois que vous avez un point de vente pour la vue, vous pouvez le faire: viewYouWantToHide.isHidden = true

24
AdamPro13

Utilisez-le pour masquer une vue dans Swift

viewVar.isHidden = true
54
iHulk

Si vous avez des étiquettes pour chaque vue, vous pouvez les masquer et les afficher en utilisant:

Objectif C

Pour se cacher:

[[self.view viewWithTag:1] setHidden:YES];

Montrant:

[[self.view viewWithTag:1] setHidden:NO];

Dans Swift:

Cache:

self.view.viewWithTag(1)?.isHidden = true

Montrant:

self.view.viewWithTag(1)?.isHidden = false

NOTE: Remplacez 1 avec la valeur de votre tag.

22
Midhun MP

cependant, le fait que isHidden est une convention de nommage pour la vérification du statut et une méthode de lecture, mais malgré cela, dans Swift, nous l'utilisons comme propriété de définition et de lecture

view.isHidden = true
10
Amr Angry