2010-08-29 7 views
2

Je peux facilement activer et désactiver le TabBarItems dans mon application qui n'ont ni valeur ni contenu. Fonctionne comme un charme. Je souhaite conserver tous les onglets afin de montrer que cette fonctionnalité ou ce contenu sera disponible sur d'autres vues de l'application, car cette vue spéciale est remplie dynamiquement avec du contenu sur 30 fois. Le TabBarController est sous-classé dans mon "DetailViewController". Dans cette classe, je vérifie si un contenu existe et charge paresseusement le contenu en transmettant l'événement viewWillAppear (en empêchant le chargement des contenus d'onglets non existants et en vérifiant les connexions Internet, etc.). Fonctionne vite et bien.UITabBarItem ne pas dim sur la première charge désactivée

Le problème est beaucoup plus un design optique. Chargement des vues lors de la première activation et la désactivation des œuvres, mais les images ne sont pas "grisé". Chargement de la deuxième vue et en passant par la même procédure fait "dim" les onglets désactivés ... Qu'est-ce que je manque?

+0

Pourriez-vous poster des extraits de code? – clozach

Répondre

0

Je penserais à deux fois avant d'appeler viewWillAppear sur self car les résultats peuvent être imprévisibles.

// BAD IDEA 
- (void)viewDidLoad { 
    ... 
    [self viewWillAppear]; 
    ... 
} 

// OK 
- (void)viewWillAppear { 
    ... 
    [super viewWillAppear]; 
    ... 
} 

... à l'exception de votre appel à [super viewWillAppear] depuis la même méthode.

En général, il est préférable de laisser le tir des rappels d'Apple à Apple. Essayez de refactoriser la fonctionnalité que vous avez dans viewWillAppear, puis appelez juste ce dont vous avez besoin dans viewDidLoad, viewWillAppear et viewDidAppear. Le problème est susceptible d'émerger à mesure que vous éclatez chaque peu de fonctionnalité.

+0

Peut être ma description était un peu déroutant concernant la structure de l'événement. Je déclenche les événements dans les mêmes événements à ce stade. En examinant mon code, j'ai trouvé que votre indice avait une certaine importance pour ma mise en œuvre du RootViewController. Je "charge" un UITabBarController dans mon RootViewController en changeant la vue et en tirant les événements directement après et ici, la chaîne peut casser ici. Il semble que je devrais refaire complètement cette partie afin de rester avec les guides SDK et implémenter ma barre d'outils par moi-même. Cela devrait éviter (espérons-le) l'effet. THX. – mic

+0

Ok, encore une fois clozach, ce n'était pas la réponse directe, mais l'indice dont j'avais besoin. Est-ce que certains recodage au cours de la nuit et introduit la bonne couche de contrôleur. MVC fonctionne, si vous faites MVC;). – mic

Questions connexes