IB, Nib et delegate
AP
Membre
Bonjour,
Je pense que la réponse est toute simple et pourtant je n'y arrive pas malgré de multiples essais.
J'ai une appli cocoa avec un Nib MainMenu.xib dont l'AppDelegate est MyAppDelegate
J'ai ajouté un second xib pour les préférences (Preferences.xib)
Je souhaiterais que mon Preferences.xib ait le même délégate (même classe et même instance) que MainMenu.xib à savoir MyAppDelegate.
Est-ce que c'est possible et si oui quelles sont les étapes à suivre pour y arriver?
Merci d'avance pour votre aide
Je pense que la réponse est toute simple et pourtant je n'y arrive pas malgré de multiples essais.
J'ai une appli cocoa avec un Nib MainMenu.xib dont l'AppDelegate est MyAppDelegate
J'ai ajouté un second xib pour les préférences (Preferences.xib)
Je souhaiterais que mon Preferences.xib ait le même délégate (même classe et même instance) que MainMenu.xib à savoir MyAppDelegate.
Est-ce que c'est possible et si oui quelles sont les étapes à suivre pour y arriver?
Merci d'avance pour votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le plus propre étant encore de gérer les préférences avec un autre contrôleur (et un autre Nib).
Quand un XIB est désarchivé, tous les éléments qu'il y a dans ce XIB, à part les "proxy objects" que sont File's Owner et FirstResponder, sont instanciées (alloc+initWithCoder), et les connections effectuées.
Le File's Owner est un cas particulier puisque c'est un "objet proxy" qui représente un objet déjà existant (qui ne sera pas instancié par le désarchivage du XIB) qui est passé en argument à la méthode "loadNibNamed:owner:options:" et permet de faire ainsi le lien entre les objets créés par le XIB et les objets existants dans ton code.
Avec MainMenu.xib on a un cas un peu spécial puisque c'est l'application qui charge toute seule ce MainMenu.xib donc c'est elle le File's Owner, et donc en général pour ce cas tu utilises un objet tierce, qu'on appelle souvent AppDelegate, comme delegué de l'application et tu t'en sers aussi pour y rajouter des IBOutlets pour accéder aux éléments de ton MainMenu.xib.
Du moins au début de tes premiers projets tu fais ça. Après tu préfères créer un AppDelegate qui est delegate de l'application et ne sert quasi qu'à ça et créer un autre objet, disons Controller, pour gérer d'autres trucs, et découper tout ça en plein de .XIB, etc