2014-07-03 3 views
12

Actuellement, nous utilisons Storyboard sur xib dans tous les projets. Mais à mon avis si vous voulez faire une vue réutilisable (vue personnalisée ou cellule Tableview) qui peut être réutilisée dans différents contrôleurs de vue, vous devez utiliser des fichiers xib comme dans le storyboard, il est impossible de créer un objet vue unique séparément.XIB sur Storyboard

Notez que j'utilise Storyboard pour le workflow (voir les contrôleurs avec des segments tout autour) de l'application entière. Seulement pour les cellules tableview réutilisables j'utilise XIB. J'ai cherché dans beaucoup de documents Apple ainsi que des vidéos WWDC mais je n'ai pas trouvé de preuve concrète des développeurs d'Apple qui disent que les XIB sont là pour rester ou que vous devriez utiliser XIB pour des vues personnalisées.

Si l'un d'entre vous a un type de lien qui donne une certaine confiance que nous pouvons toujours utiliser XIB sans crainte de l'enlever Apple, il serait vraiment apprécié.

+1

Vous pouvez utiliser plus d'un story-board et de réutiliser des éléments de l'intérieur du story-board dans différentes parties de vous App. Et vous ne gagnerez pas les arguments parce qu'Apple ne donne généralement pas d'informations détaillées sur leurs projets futurs. Demandez à vos aînés pourquoi ils utilisent même des storyboards. Le code restera beaucoup plus longtemps qu'un format étrange. – dasdom

+0

Merci pour votre réponse. Selon mes connaissances, nous ne pouvons créer un contrôleur de vue qu'en tant qu'objet racine dans Storyboard. n'est-ce pas? Que faire si je veux juste créer une petite vue personnalisée. nous devons utiliser xib (sinon dans le code) non? –

+1

Oui, vous avez raison. Vous pouvez uniquement obtenir des contrôleurs de vue à partir de storyboards ([instantiateViewControllerWithIdentifier] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStoryboard_Class/Reference/Reference.html#//apple_ref/occ/instm/UIStoryboard/instantiateViewControllerWithIdentifier :)). Désolé pour la confusion. – dasdom

Répondre

7

Les story-boards sont recommandés lorsque vous ne réutilisez pas les vues. Une fois que vous voulez réutiliser quelque chose dans plusieurs vues/story-boards, alors vous avez besoin de XIBs. Vous avez déjà mentionné l'exemple des cellules personnalisées. C'est quelque chose dont j'ai besoin assez souvent et je veux utiliser la même cellule dans plusieurs vues de table. Je fais de même avec les graphiques. Je crée une vue de diagramme dans laquelle je place des couleurs etc. et je le réutilise partout, en y mettant seulement différentes données. Cela me sauve beaucoup de code en ce qui concerne le style/apparence et rend l'application facilement maintenable. En cas de changement (par exemple en raison de la nouvelle version iOS), j'ai besoin de tout changer sur un seul endroit.

En outre, je veux avoir des vues (par exemple des cellules) pour iPhone et iPad et laisser le système déterminer lequel utiliser. Pour cela, encore une fois, j'ai besoin de XIBs. J'utilise la notation avec ~iphone ou ~ipad à la fin et je n'ai pas besoin d'écrire du code pour récupérer la vue correcte.

Ce sont deux choses que vous ne pouvez tout simplement pas faire sans XIB. Donc, suivant les lignes directrices d'Apple, mon approche consiste à utiliser des storyboards autant que possible et des XIB uniquement lorsque j'en ai besoin (principalement à cause de la réutilisabilité). Mais il y a des cas réels quand on a besoin de XIBs! Le fait de les ignorer n'est pas une bonne pratique à coup sûr. En fait, dans chaque projet j'ai des storyboards ainsi que des XIBs. Je viens de trouver un great post expliquant les inconvénients des storyboards. Il y a plein de choses que je ne connaissais pas.

2

De plus, vous ne devez pas utiliser exclusivement. Vous pouvez toujours utiliser des fichiers XIB même si la plupart de votre travail est dans le storyboard. Et l'utilisation de l'un ou l'autre ne vous empêche pas non plus de créer une vue qui ne soit pas construite dans IB. Storyboard a beaucoup, beaucoup d'avantages.

Particulièrement lorsque vous commencez à faire participer de nouvelles personnes au projet. Sans se laisser engloutir en regardant des centaines de milliers de lignes de code, un nouveau développeur peut regarder le story-board et en 30 minutes ou moins, avoir une assez bonne idée du flux de l'application. Cela dit, vous ne devriez jamais vous limiter à quoi que ce soit. Se limiter au storyboard et ne jamais utiliser XIB ou construire une vue complètement dans le code revient à dire "Nous n'utiliserons que NSArrays, et jamais NSDictionary ou NSSet". Au lieu d'une limitation stupide, vous devriez toujours être sûr que vous utilisez le bon outil pour le travail.

0

Mon avis est l'utilisation que l'on convient à ce contexte, voici quelques lignes directrices:

Quand utiliser grué

  • Modularité est la clé de fichiers nib bien conçus
  • Utiliser des Nibs pour stocker des vues, des sous-vues, des contrôles personnalisés ou des vues répétées
  • Il n'existe aucun moyen de représenter la relation entre les écrans de contenu connexe

Quand utiliser Storyboards

  • Storyboards sont mieux utilisées pour représenter les écrans de contenu et les connexions entre les écrans
  • Donner des soins et l'attention à l'prepareForSegue: expéditeur: méthode
  • La modularité est toujours applicable lors de la conception de storyboards

Général Guidlines

  • de Décomposer vos projets en grué et storyboards
  • Vues, ​​subviews et contrôles personnalisés doivent être contenues dans les fichiers nib séparés Utilisez storyboards lors de la conception du contenu en plein écran et il y a des relations claires entre les scènes
  • Déterminer si l'interface doit être statique ou dynamique
  • Utiliser des storyboards distincts pour encapsuler des séquences de scènes réutilisables
  • Utiliser des storyboards distincts pour des événements indépendants scènes
  • cellules Tableau de vue qui peuvent être réutilisés sur différents contrôleurs appartiennent dans les fichiers nib
Questions connexes