0

Donc, le noyau de mon application est une barre d'onglets. Dans chacun des 3 onglets est une sous-classe UINavigationController. Chacun d'eux a un type de table différent, et quand une ligne est tapée, un détail est affiché, etc.Comment obtenir la fonctionnalité NavigationController sans sous-classe?

J'ai actuellement 3 sous-classes distinctes de UINavigationController, une pour chaque onglet. Ensuite, quand un nouvel onglet est pressé, le contrôleur de la table est poussé.

Je viens de lire que vous n'êtes pas censé sous-classer UINavigationController. Je ne remplace aucune des fonctionnalités de UINavigation Controller, mais je remplace sa fonctionnalité UIViewController dans viewDidLoad. Honnêtement, c'est à peu près tout. Cela semble assez stupide, mais je ne sais pas comment obtenir la fonctionnalité de contrôleur de navigation sans sous-classe comme je l'ai. Alors comment est-ce que je suis supposé avoir un UINavigationController que je ne sous-classe pas? Quelle est l'approche que vous êtes censé prendre pour désactiver les vues lorsqu'un onglet est sélectionné?

Je suis à peu près un noob. Est-ce qu'Apple rejette mon application pour la sous-analyse de UINavigationController si je ne fais qu'importer la viewdidload?

J'ai entendu des gens dire de ne pas sous-classer UINavigationController, et à la place «le présenter modalement». J'ai utilisé la présentation modale un peu, mais honnêtement, je ne comprends pas comment cela s'appliquerait ...

Merci pour votre aide!

Répondre

0

Que faites-vous dans viewDidLoad? Qu'en est-il faire dans le contrôleur de vue racine, pas dans le contrôleur de navigation?

post-scriptum Je pense qu'Apple ne rejettera pas votre application pour sous-classer UINavigationController.

+0

Depuis que je suis En chargeant différentes vues dans la vue initiale du contrôleur Nav, viewdidload est juste en train d'allouer et de pousser le bon viewcontroller à afficher. Merci pour le ps btw! – averydev

+0

Si je comprends bien, vous avez 3 onglets avec des contrôleurs de navigation dans chacun. Je l'implémente généralement de la manière suivante: créer xib avec UITabViewController, ajouter UINavigationController dans chaque onglet et affecter 3 contrôleurs différents comme contrôleur racine des contrôleurs de navigation. – Yuras

+0

Oh je vois! Cela a du sens. Merci de votre aide – averydev

0

Vous devez utiliser des catégories pour ajouter des fonctionnalités supplémentaires de ce type. Il ressemblerait à quelque chose comme ceci:

@implementation UINavigationController (CustomViewDidLoad) 

- (void)viewDidLoad 
{ 
    //code goes here 
} 

@end 

Vous pouvez ajouter à la fin du fichier qui initialise le NavigationController

Plus d'informations sur les catégories (en bas): http://cocoadevcentral.com/d/learn_objectivec/