2010-09-10 3 views
0

question de base ici sur la structure d'une application iOS MVC base ..Un IBOutlet ne doit-il être utilisé que pour les éléments de l'interface utilisateur?

Je sais IBOutlets sont utilisés pour accéder à des éléments d'affichage tels que les boutons et les étiquettes et autres et de modifier ou d'obtenir leurs valeurs ..

Est-il normal cependant d'utiliser un IBOutlet pour accéder à un autre objet de votre application FROM une vue ??

Par exemple ..

@interface CustomView : UIView { 
    IBOutlet Person *person; 
} 

Doit-on utiliser une prise à la personne (Model) pour que la vue d'afficher des informations sur la personne?

Ou est-ce que la vue doit simplement instancier un objet Personne directement sans utiliser IBOutlets et Interface Builder.

Nous vous remercions de vos précisions.

* Pour une raison quelconque, le didacticiel que je suis a mis la classe Model dans la plume.

Répondre

2

Vous n'avez pas besoin d'utiliser IBOutlet sauf si vous souhaitez lier un objet d'une plume à cette variable dans Interface Builder. Le compilateur ignore le "mot-clé" IBOutlet (ce n'est pas vraiment un mot-clé, mais une macro de préprocesseur vide), il indique simplement au constructeur d'interface qu'il peut être connecté à un objet instancié dans une plume.

Si vous avez besoin de votre objet Person dans la plume, créez-le dans Interface Builder et connectez-le à une prise. Si vous n'avez pas besoin d'y accéder à partir de la plume, vous pouvez aussi bien le créer en code et ne pas en faire un exutoire.

+0

Merci, Sven. Y at-il un cas où j'aurais besoin de ma classe de modèle dans le fichier nib? – Ayrad

3

IBOutletIBOutlet n'est rien de plus qu'une annotation qui indique à Interface Builder quelles propriétés et/ou variables d'instance d'une classe donnée doivent être visibles (et donc disponibles pour se connecter) dans IB. Vous devez généralement connecter une ou plusieurs sous-classes de UIViewController aux instances de vue dans un fichier nib donné, mais conformément au modèle de conception Model-View-Controller, vous devez éviter de connecter directement les objets View aux objets de modèle.

Apple a un aperçu de ce modèle dans son iOS Tutorial. Vous devriez également lire le Human Interface Guidelines d'Apple - il fera vraiment la lumière sur beaucoup de ces types de problèmes pour vous.

Questions connexes