2017-03-09 1 views
1

Je veux avoir une barre d'onglets dans chaque page de mon application. J'ai séparé les 4 sections principales de l'application (les sections sur l'onglet) en 4 storyboards différents. Je veux maintenant faire la barre de tabulation par programme et à chaque clic, il charge un nouveau storyboard.Comment faire par programme une barre d'onglets qui présente de nouveaux story-boards?

Je l'ai fait similaire à ce tutoriel: http://swiftdeveloperblog.com/code-examples/create-uitabbarcontroller-programmatically/

Mais maintenant, ne sais pas comment le transformer en charge de nouvelles storyboards au lieu de simplement voir les contrôleurs?


Bien que ce soit ma question principale, je me demande aussi si cela en vaut la peine. Ma raison pour cela est de diviser les storyboards parce que je veux toujours utiliser des storyboards mais je ne voulais pas avoir un storyboard massif. Je pourrais cependant faire ça.

Je ne sais pas non plus si la mémoire n'est pas bonne, car le fait de cliquer sur les onglets dans la barre serait ralenti à chaque fois qu'un nouveau story-board serait chargé?

+0

Quelle est la taille de votre storyboard? –

+0

4 sections, chacune d'environ 3-4 ViewController chacune –

Répondre

2

Créer un UIStoryboard et instancier le contrôleur de vue initial:

UIStoryboard(name: "TabOneStoryboard", bundle: nil) 
    .instantiateInitialViewController() as! TabOneViewController 

Si vous ne voulez pas instancier le contrôleur de vue initial puis créez via ID:

UIStoryboard(name: "TabOneStoryboard", bundle: nil) 
    .instantiateViewController(withIdentifier: "TabOneViewControllerID") as! TabOneViewController 

Souvenez-vous de régler la contrôleur de vue initiale dans l'inspecteur des attributs du storyboard: Attribute inspector

Je pense que c'est une approche très pratique pour réduire la taille des storyboards. Une fois les contrôleurs de vue créés, ils doivent être mis en cache avec le UITabBarController. Ne vous inquiétez pas de la performance du chargement du storyboard à moins que vous ne voyiez quelque chose se ralentir. Apple est très bon sur le nettoyage et la performance avec ces choses.

Cette adresse après que problème un bit: Multiple storyboards: should I use a singleton pattern to cache them?

1
  1. Créer une référence story-board dans votre présent story-board enter image description here

  2. maintenant dans les détails de votre set de référence story-board ici enter image description here

  3. Intégrez maintenant cette référence de storyboard dans le tabbar