2010-07-02 3 views
1

Est-il vrai que UITabBarController n'appelle jamais initWithNibName sur ses vues enfant (onglets individuels)? Ou est-ce que je viens de configurer mon application d'une manière vraiment foirée?UITabBarController n'appelle jamais initWithNibName sur des onglets individuels?

Mon MainWindow.xib ressemble à ceci dans le constructeur de l'interface: tab bar in interface builder http://web.mit.edu/keone/Public/tabbar.png

Notez que la fenêtre est complètement vide alors que l'action se passe dans le contrôleur barre d'onglets.

Mon représentant de l'application appelle [window addSubview:tabBarController.view] en application:didFinishLaunchingWithOptions et une fois que cela arrive, nous partons pour les courses!

Mais quand je mets des points d'arrêt sur les init, initWithNibName: et initWithNibName:bundle: méthodes dans l'un de mes contrôleurs individuels (qui sont répertoriés dans Interface Builder comme les enfants des onglets, comme l'image ci-dessus montre), rien n'attrape.

Merci d'avance!

Répondre

4

Il ne remet pas initWithNibName:, ils appellent initWithCoder: - initWithNibName: est appelée uniquement lorsque vous instancier une classe et programme un fichier remettre xib pour définir ses sous-vues à partir.

(Mise à jour: je me suis souvenu de mal, ne initWithNibName: est appelé à moins que l'on fait l'appeler soi-même.)

+0

aha. 'initWithCoder' attrape en effet. En passant, mes vues enfant * sont * définies dans les plumes (par exemple, certains éléments ne sont jamais initialisés dans le code, uniquement par le périphérique lisant le fichier nib associé). Donc, cela signifie que 'initWithNibName:' ​​est seulement appelé pour les choses de haut niveau? – unsorted

+0

Oui, et en fait ma réponse est incorrecte - ils ont tous 'initWithCoder:' - va se mettre à jour en une seconde. – Kalle

+0

oh, d'accord. c'est logique - merci! – unsorted

Questions connexes