web-dev-qa-db-fra.com

Déplacer ou copier le contrôleur de vue d'un story-board à un autre

J'ai plusieurs UIViewControllers dans un storyboard ..__ Maintenant, je veux déplacer un UIViewControllers dans un autre storyboard C'est possible?

66
Vladimir Berezkin

Oui c'est possible.

  1. Sélectionnez les contrôleurs que vous souhaitez copier
  2. Presse Command + C
  3. Ouvrez votre deuxième fichier de storyboard
  4. Presse Command + V

Remarque: "IBOutlets reste tel quel après la copie (vérifié sur Xcode 6.3.2)."

134
Rahul Wakade

Il est possible de copier, mais vous devez ouvrir les deux scénarios simultanément dans un projet, puis copier et coller.

29
AndrewK

Dans Xcode 8, si vous souhaitez spécifiquement déplacer les contrôleurs de vue vers un autre scénario, sélectionnez simplement le ou les contrôleurs de vue que vous souhaitez déplacer par Cmd + cliquez sur le contrôleur de vue. Gardez-les sélectionnés, allez dans l’éditeur et choisissez Refactoriser dans le scénarimage. Il vous demandera le nom du nouveau fichier de scénario et appuiera sur Entrée.

Un nouveau fichier de storyboard sera créé avec les contrôleurs de vue sélectionnés. Dans Main.storyboard, vous verrez un objet de référence de storyboard à la place de ce contrôleur de vue, qui est votre référence au nouveau storyboard que vous venez de créer.

21
Dark Innocence

Copier-coller (Commande + C, Commande + V) fonctionne bien, mais n'oubliez pas de résoudre les connexions de sortie car Xcode semble conserver les connexions d'origine: fermez/rouvrez le projet, supprimez ce qui ne va pas et rétablissez les connexions manquantes.

3
Lubos Ilcik

Il est possible de copier/coller, mais cela ne fonctionne que si vous avez les deux Storyboards ouverts côte à côte à l'aide de l'éditeur adjoint de Xcode.

2
Marcos Reboucas

Je suis arrivé à une situation similaire, où dans mon scénario principal, j'ai trop de scènes et j'ai besoin de refactoriser… .. L'idée que j'avais au début était de marquer plusieurs et de faire du copier-coller comme suggéré par beaucoup. Cependant, j'étais préoccupé par toute résolution des connexions du storyboard au code des contrôleurs de vue . Après de nombreuses recherches, j'ai découvert que, depuis iOS 9, une nouvelle fonctionnalité est disponible pour "Refactor to Storuboard". Vous pouvez marquer plusieurs scènes dans votre scénario source et vous pouvez sélectionner cette option dans le menu Editeur. Ensuite, toutes les scènes sélectionnées sont extraites de votre ancien storyboard, un nouveau storyboard est créé ainsi qu'un lien vers celui de l'ancien/principal. Les totials utiles sont les suivants: https://code.tutsplus.com/tutorials/ios-9-staying-organized-with-storyboard-references--cms-24226https : //www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards

J'espère que cette nouvelle fonctionnalité officielle de refactoring de storyboard pourra fournir une meilleure solution à ce type de problèmes.

0
Konstantinos

Les éléments d'interface peuvent être déplacés entre les fichiers Xib et Storyboard via Copier/coller .

Cela ne fonctionnait pas à l'origine pour moi. J'essayais de copier une UICollectionViewCell d'un Xib dédié sur notre Storyboard principal. La cellule ne copierait pas dans le Storyboard.

La solution consistait à sélectionner l'élément parent spécifique dans le storyboard. UICollectionViewCell peut être collé en tant qu'enfant d'un UICollectionView dans le storyboard, mais ne peut pas être collé autrement. 

Si vous ne parvenez pas à coller un élément spécifique, vérifiez bien que vous avez sélectionné un élément parent valide avant de tenter le collage.

0
pkamb

Si l'utilisation de Cut-n-Paste échoue pour vous, il existe une solution de contournement. Le collage échouera s'il y a maintenant ViewController dans le fichier en cours de collage. Cela rend impossible la sélection du story-board à coller. XCode refusera de coller. Vous devez donc d'abord faire glisser un contrôleur de vue vide dans le storyboard à partir de la bibliothèque. Ensuite, sélectionnez ce viewController dans le storyboard, puis le collage fonctionnera. Une fois que vous avez fini de coller, vous pouvez supprimer le viewController factice. Vous n'en aurez plus besoin.

0
nishant