2010-06-11 3 views
0

Si je charge une vue depuis un autre NIB, comment puis-je définir la propriété d'affichage Propriétaire du fichier? IB ne me laisse pas connecter à mon View Controller qui charge le NIB externe.Chargement d'une NIB externe, comment définir la propriété d'affichage?

Mon NIB ressemble à ceci:

File's Owner - Identity is set to LBRootViewController 

First Responder 

LBTableViewController - Identity is set to LBTableViewController, NIB Name is LBTableViewController 

Répondre

1

Sélectionnez le proxy de fichier propriétaire (dans la fenêtre NIB) et passez à l'onglet identité dans la palette Inspecteur (l'onglet extrême droite avec le cercle-i icône). Définissez le champ Classe sur NSViewController (ou quel que soit votre sous-classe de contrôleur de vue, le cas échéant). Vous devriez maintenant être capable de faire glisser votre sortie!

+0

J'ai essayé de régler le propriétaire du fichier sur LBTableViewController mais je n'arrive toujours pas à faire glisser ma sortie. Ai-je besoin d'écrire du code dans mon fichier H? –

+0

Est-ce que 'LBTableViewController' hérite de' NSViewController'? Assurez-vous que la ligne '@ interface' ressemble à' @interface LBTableViewController: NSViewController'. Ou, si vous ne voulez pas qu'il hérite de 'NSViewController', assurez-vous que votre variable d'instance' view' est déclarée comme 'IBOutlet':' IBOutlet NSView * view; '. – Wevah

+0

hérite de UIViewController, des pensées? –

2

Vous ne pouvez pas définir le propriétaire de fichier sur un contrôleur de vue défini dans une autre pointe, car vous ne pouvez pas définir de points de vente entre les pointes. Chaque contrôleur de vue doit être le propriétaire du fichier de sa propre plume.

Aucune puce ne doit avoir deux contrôleurs actifs en même temps. La configuration où vous avez un contrôleur racine dans un système de navigation ne dispose pas réellement de deux contrôleurs mais à la place, le contrôleur racine charge la seconde puce de contrôleur à l'exécution. Il semble que vous devriez avoir deux pointes ici: LBRootViewController.xib et LBTableViewController.xib. Le propriétaire du fichier de chaque plume est une instance des classes pour lesquelles les plumes sont nommées. Vous pouvez créer une sortie dans la classe LBRootViewController qui pointe vers une instance de LBTableViewController. Lorsque LBRootViewController.xib charge, il ne déclenche pas le chargement de LBTableViewController.xib jusqu'à ce que l'attribut servant de sortie soit accédé.

Questions connexes