J'ai une application avec un UITabBarController qui gère certains UINavigationControllers, qui à leur tour gèrent divers UIViewControllers.Visualisations de rendu UITabBarController avant le rendu?
Sur les téléphones 3G, la première fois que je vois une vue particulière via un bouton TabBar, c'est laggy, mais par la suite, c'est accrocheur. Ceci n'est pas perceptible avec les téléphones 3GS. Ma question est comment puis-je forcer ces vues à pré-rendre? J'ai essayé de déclencher les fonctions loadView en les appelant dans un thread différent au démarrage, mais cela ne fait rien que je ne pense pas. Par souci de clarté, voici un extrait abrégé de mon code pour montrer ce que je suis en train de faire. J'ai cinq contrôleurs de vue, mais je montre juste le code pour deux. Le poiVC est juste une sous-classe UITableViewController standard - je n'ai même pas de fonction personnalisée init ou loadView pour cela.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
self.mapVC = [[MapViewController alloc] init];
NavControlBar * mapNavBar = [[[NavControlBar alloc] initWithViewController:mapVC
withControlBar:[mapVC initBar]]autorelease];
self.poiVC = [[POIViewController alloc] init];
NavControlBar * poiNavBar = [[[NavControlBar alloc] initWithViewController:poiVC
withControlBar:[poiVC initBar]]autorelease];
NSArray *tabViewControllerArray = [NSArray arrayWithObjects:mapNavBar, poiNavBar, nil];
self.tbc.viewControllers = tabViewControllerArray;
self.tbc.delegate = self;
[mapVC release];
[poiVC release];
[window addSubview:tbc.view];
}
Puis-je obtenir le poiVC de rendre pendant que l'utilisateur regarde le premier écran, de sorte que la transition sera rapide?
Pourquoi vous créez explicitement les barres de navigation ? Pourquoi ne pas simplement utiliser l'élément navigationItem dans vos contrôleurs de vue pour gérer la barre de navigation? Cela pourrait faire partie du problème. (Et qu'est-ce que NavControlBar?) – Nimrod
Ces NavControlBars sont une classe stupide que j'ai créée pour ajouter des éléments arbitraires à un UINavigationBar, avant de comprendre comment UIBarButtonItems fonctionnait avec des vues personnalisées. Voici le référentiel github de la classe: http://github.com/andrewljohnson/NavControlBar. Je ne pense pas que ce soit le problème ... même si j'ai utilisé des navigateurs normaux, les vues ne sont pas restituées jusqu'à la première fois qu'elles s'affichent à l'écran, et je vais quand même voir le léger décalage du premier chargement. –