J'ai un contrôleur de vue de base avec divers conteneurs à l'intérieur. Je les utilise pour contrôler l'étape actuelle sur un processus et une seule d'entre elles est visible à la fois. J'ai créé une énumération pour les étapes et utilisez-le de SLOWValue pour accéder aux conteneurs correspondant à chaque étape par balise, en changeant sa visibilité. P>
Mais à certains endroits, je dois passer des informations à un ou plusieurs des contrôleurs de l'étape. Je pensais en utilisant la même approche énumée pour accéder à la position du contrôleur d'affichage correspondant dans le tableau enfilviewControlers pour le faire. P>
problème est que je n'ai rien trouvé dans la documentation qui vous assure que la matrice d'enfantsControls est toujours au même ordre, afin que je puisse utiliser cette approche. P>
Est-ce que quelqu'un le sait ou a une meilleure façon d'atteindre quelque chose de similaire? p>
3 Réponses :
Oui, il est commandé
class Vvv:UIViewController { } class Ddd:UIViewController { }
Mais j'ai ajouté tous les contrôleurs d'enfants dans le storyboard, par incorporer des segues. Même dans ce cas, je peux garantir toujours le même ordre?
J'ai essayé ce test aussi et pour moi, il semblait qu'ils soient apparus dans le même ordre. Je voulais juste une certaine confirmation que cela fonctionnerait de la même manière dans toutes les versions IOS.
Peut-être serait peut-être préférable de garder la commande manuellement, par exemple en créant une variable code> code> qui serait remplie de références pour vos conteneurs / contrôleurs dans l'ordre que vous avez besoin.
Connectez simplement toutes les vues du conteneur. à la collecte de la sortie et à la masque ou à afficher certains éléments de celui-ci p> p> pour garder l'ordre des contrôleurs vient de créer une variable de tableau et remplissez-le avec des références de contrôleurs. Si vous utilisez des segues, appendez des destinations d'intégration de Segues. Si vous ajoutez des contrôleurs d'enfants par addChild (_:) code>, il suffit d'ajouter des contrôleurs que vous ajoutez p>
J'ai édité la question de clarifier davantage le problème. Mais en pensant à la visibilité des vues, votre solution semble bien meilleure que l'approche des balises.
Si vous avez vos vues de conteneur connectées via iboutlet code> s, et que vous souhaitez les suivre avec un tableau "commandé", vous pouvez le faire:
orderdContainers[1].isHidden = true
Je modifie la question à clarifier. L'ancien était un peu trompeur.
@Gustavoazol - Voir cette réponse Stackoverflow.com/a/48892520/6257435
Voir la réponse, oui, je pourrais utiliser la préparation de Segue pour stocker les références ... mais je pensais que, si vous pouviez utiliser les personnes déjà présentesContrôleurs, il n'y aurait pas besoin de stocker plus de références aux contrôleurs et je pourrais essayer quelque chose Comme en combinant les segues de scénario / la commande d'enfant et la gamme de réponses de conteneur postées ici.
S'appuyant sur l'ordre dans lequel ils ont été ajoutés dans votre scénario peuvent être problématiques. Supposons que vous commenciez avec 4 "étapes" et décidez ensuite que vous voulez une nouvelle "étape" entre 2 et 3? Vous pouvez supprimer / ré-ajouter vos vues de conteneur, ou vous pouvez ré-attribuer les segues ... mais il est également possible de modifier les versions futures de Xcode / IB. Pourrait être préférable de garder explicitement suivre ce que vous avez continué.
"J'utilise ishadden pour contrôler les transitions" i> ... Voulez-vous que vous définisez
.Chriden code> propriété de la vue conteneur b> vous ' J'ai ajouté dans Storyboard?
Je vais éditer la question.