J'apprends le développement iOS et ce que j'ai trouvé dans les tutoriels et les livres est que la couche contrôleur a généralement accès aux contrôles de la vue directement (champs de texte, étiquettes, etc.). Considérons un tel exemple :
Supposons que View a une étiquette appelée lblResult
et un champ de texte appelé txtDataToAnalyze
. Puis, dans l'interface du contrôleur, nous avons quelque chose comme ça :
@property (nonatomic, retain) IBOutlet UILabel* lblResult;
@property (nonatomic, retain) IBOutlet UITextField* txtDataToAnalyze;
et quelques @synthesize
dans le fichier d'implémentation.
J'ai une certaine expérience du développement de JavaSwing, où la plupart des pensées que j'écris sont manuelles, sans aucun constructeur d'interface graphique, et ce que je fais habituellement dans MVC est d'accéder aux contrôles de la vue via getters/setter. Par exemple : void setResult(String resString);
o String getDataToAnalyze();
. De cette façon, le contrôleur ne connaît que qué éléments d'information sont affichés dans la vue, et non pas cómo sont affichés. Je pense que c'est plus flexible (il est plus facile de changer la couche d'affichage plus tard).
Je sais que iOS a des règles spécifiques, qu'il a introduit des fichiers XIB/NIB, etc. et que mes doutes sont peut-être complètement inutiles dans le cas du développement d'un iPhone/iPad. Mais je vais écrire une application plus sérieuse pour iOS (en fait, la "réécrire" à partir de Java Swing) et c'est pourquoi je voudrais vous poser la question :
Pensez-vous que je doive changer ma façon de penser et m'habituer à cette nouvelle approche (pour moi) (fichiers xib, création d'une interface utilisateur graphique par glisser-déplacer et fournir au contrôleur des informations sur la façon dont les données doivent être affichées dans la vue ) ? ? Avez-vous eu des doutes similaires en commençant avec iOS ?