Permutation des vues enfant dans un conteneur en vue
Laisser ContainerView
être le conteneur parent vue avec deux enfant vues de contenu: NavigationView
et ContentView
.
Je voudrais être en mesure de remplacer le contrôleur de ContentView
avec un autre point de vue. Par exemple, la permutation d'une page d'accueil contrôleur avec un communiqué de contrôleur de la page. Actuellement, la seule façon que je peux penser à le faire à l'aide d'un délégué à dire la ContainerView
que je veux changer de vue. Cela semble être un mauvais moyen de le faire parce que la ContainerViewController
finirait par avoir un tas de spécial délégués pour tous les sous-vues.
Cela doit aussi communiquer avec le NavigationView
qui a des renseignements au sujet de la vue qui est actuellement dans le ContentView
. Par exemple: si l'utilisateur est sur la page de news, la barre de navigation dans le mode de navigation montrent que les nouvelles bouton actuellement sélectionné.
Question:
Est-il un moyen pour échanger le contrôleur dans ContentView
sans un délégué de la méthode de l'appel de la ContainerView
lui-même? Je voudrais le faire par programmation (pas de scénario).
Question B:
Comment puis-je changer de contrôleur dans ContentView
de la NavigationView
sans déléguer l'appel? Je voudrais le faire par programmation (pas de scénario).
- Avez-vous jeter un oeil à UIPageViewController? "Une page vue-contrôleur permet à l'utilisateur de naviguer entre les pages de contenu, où chaque page est géré par son propre point de vue de l'objet contrôleur"
Vous devez vous connecter pour publier un commentaire.
Lorsque vous avez vues enfants qui ont leur propre point de vue contrôleurs, vous devriez être à la suite du conteneur personnalisé modèle de contrôleur. Voir La Création D'Un Custom Conteneur Affichage Des Contrôleurs pour plus d'informations.
En supposant que vous avez suivi le conteneur personnalisé motif, quand vous voulez changer l'enfant-vue-contrôleur (et sa vue) pour le "contenu" de vue", vous devez le faire par programmation avec quelque chose comme:
Lorsque vous faites de cette façon, il n'y a pas besoin de tout délégué-protocole d'interface avec le contenu de la vue contrôleur (autre que ce que iOS fournit déjà avec le La gestion de la Vue Enfant Contrôleurs dans un Conteneur Personnalisé méthodes).
Par la voie, ce qui suppose que l'initiale de l'enfant contrôleur associés avec le contenu de la vue a été ajouté comme suit:
Si vous voulez un enfant contrôleur de dire à la mère de changer de contrôleur associés avec le contenu de la vue, vous:
Définir un protocole à cet effet:
Définir le contrôleur de parent à se conformer au présent protocole, par exemple:
Mettre en œuvre les
changeContentTo
méthode dans le contrôleur de parent (comme décrit ci-dessus):Et de l'enfant, les contrôleurs peuvent désormais utiliser ce protocole, en référence à la
self.parentViewController
bien que iOS offre pour vous:Pour ce type de transition, vous pouvez également utiliser
UIView.animateWith...
animations.Par exemple, supposons que
rootContainerView
est récipient etcontentViewController
actuellement contrôleur actif dans le récipient, puiscela fournira u simple fondu animations, u pouvez également essayer de toute
UIViewAnimationOptions
, transitions etc.Vous semblent se confondre. Un contentView (en supposant que
UIView
) ne contient un contrôleur qui vous échangez. UnUIViewController
gère ses UIView de l'. Il me semble que vous avez besoin d'un parent-enfant-vue-contrôleur de l'installation.Un seul parent-vue-contrôleur, qui permettrait de gérer la vue enfant contrôleurs, chacun de qui vous pouvez alors gérer lorsque chacun est indiqué sur l'écran et d'ajuster votre UIViews et le contenu en conséquence. Veuillez consulter la documentation d'Apple ci-dessous.
Conteneur De Programmation - La Documentation D'Apple