0

Je travaille actuellement sur une nouvelle fonctionnalité qui est présenté comme ceci:iOS - Comment éviter de mettre le contrôle de navigation dans la barre de navigation Articles lorsque vous travaillez avec des conteneurs Voir

enter image description here

Tout le contenu est un Container View, afin de changer le contenu en jouant avec le contrôle segmenté. J'ai 2 autres UIViewController (pour le premier et deuxième contenu).

Apparemment intégré dans un contrôleur de navigation. Mon problème est que je ne peux pas mettre bas le contrôle segmenté, je veux dire à l'extérieur de la barre de navigation.

Si je le ramène, il apparaît caché.

Voici une partie de mon contrôleur principal Voir (celui contenant la vue du conteneur):

private func addViewControllerAsChildViewController(childViewController: UIViewController) { 
     view.addSubview(childViewController.view) 

     childViewController.view.frame = view.bounds 
     childViewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]    
    } 

    private func removeViewControllerAsChildViewController(childViewController: UIViewController) { 
     childViewController.willMove(toParentViewController: nil) 

     childViewController.view.removeFromSuperview() 

     childViewController.removeFromParentViewController() 
    } 

Ce que je fais est après que j'instancier mes 2 ViewControllers (premier et deuxième), je les ajouter comme Contrôleur de vue enfant.

Comment puis-je gérer le contrôle segmenté sans ruiner toute ma logique et mon design, je veux dire le rendre visible en dehors de la barre de navigation.

+0

Le contrôle segmenté fait partie de votre élément de barre de navigation, n'est-ce pas? Pourquoi avez-vous besoin de "tirer vers le bas" en premier lieu. Voulez-vous essayer de le faire fonctionner dans la barre de navigation en premier lieu? –

+0

Il fonctionne parfaitement avec la barre de navigation. Mais j'ai dû intégrer mon ViewController dans une nouvelle barre de navigation. C'est pourquoi j'ai perdu ma navigation "précédente". Et ce n'est pas vraiment esthétique avec un contrôle segmenté dans la barre de navigation – Balanced

Répondre

1

Je le manipulerais comme suit. Dans votre vue de conteneur, ajoutez votre contrôle segmenté, puisque vous savez que cette vue va avoir une barre de navigation, utilisez les métriques simulées pour savoir où le contrôle segmenté sera visible. Créez une autre vue dans ce contrôleur de vue de conteneur, qui contiendra vos contrôleurs de vue enfant. Définissez l'étendue de la vue du bas de votre vue segmentée au bas de la vue du conteneur. IBOutlet cette vue (childContainerView) de sorte que vous y avez accès dans le code de votre contrôleur de vue. Au lieu d'ajouter simplement les contrôleurs de vue enfants à votre self.view.addSubView par défaut (childVC.view), où self.view est l'ensemble de la vue, ajoutez-le simplement à la vue IBOutletted (childContainerView) mentionnée ci-dessus.

+0

Précis et clair. Je l'attache. – Balanced