Je suis l'implémentation d'un TabBarViewController
personnalisé, qui, en dehors de la conception devrait avoir le même comportement.problèmes de rotation, la gestion des sous-vues dans un TabBarController personnalisé
Je gère mon subViewControllers
dans un tableau, l'initialisation vues avec le chargement paresseux comme décrit dans « Début Iphone développement » Chapitre 6, que je fais en remplissant mon tableau avec autant de NSNull
objets sous forme d'onglets que j'ai et en les remplaçant par fraîchement initialisé viewControllers
si nécessaire. De cette façon, je peux suivre le bon ordre des vues et les associer aux bons onglets (la première place dans le tableau est réservée à la première vue, etc.).
Lors de la commutation de vues, la vue actuelle est supprimée avec [currentViewController.view removeFromSuperview];
et une nouvelle est ajoutée avec [self.view addSubview:newViewController.view];
. La vue maintenant ancienne est conservée dans le tableau pour une utilisation future. Une difficulté se présente lors de la rotation du périphérique, car (je pense) les viewControllers
de ma baie qui ne sont pas ajoutés à la vue d'ensemble à ce moment avec addSubview
ne sont pas pivotés, ce qui est logique, je suppose.
Le résultat est que, après rotation, par ex. En mode paysage, l'utilisateur bascule vers une vue qu'il a déjà vue auparavant, ce qui est dû à cela déjà initialisé, la vue lui est présentée toujours en mode portrait.
Mes questions sont alors:
1) Dois-je tourner mes subviews non ajoutés manuellement et si oui, comment est-ce fait plus facile?
2) Comment le TabBarController
normal gère-t-il ses contrôleurs, en d'autres termes, est-ce que je le fais correctement?