webentwicklung-frage-antwort-db.com.de

Verschieben oder kopieren Sie den View Controller von einem Storyboard in ein anderes

Ich habe mehrere UIViewControllers in einem Storyboard ..__ Jetzt möchte ich einige UIViewControllers in ein anderes Storyboard verschieben. Ist es möglich?

66

Ja, es ist möglich.

  1. Wählen Sie die Controller aus, die Sie kopieren möchten
  2. Drücken Sie Command + C
  3. Öffnen Sie Ihre zweite Storyboard-Datei
  4. Drücken Sie Command + V

Hinweis: "IBOutlets bleiben nach dem Kopieren unverändert (Verifiziert auf Xcode 6.3.2)."

134
Rahul Wakade

Es ist möglich zu kopieren, aber Sie müssen beide Storyboards gleichzeitig in einem Projekt öffnen und dann kopieren und einfügen.

29
AndrewK

Wenn Sie in Xcode 8 gezielt View Controller in ein anderes Storyboard verschieben möchten, wählen Sie einfach die View Controller aus, die Sie mit Cmd verschieben möchten + klicken Sie auf den View Controller. Wenn Sie sie ausgewählt lassen, wechseln Sie zur Registerkarte "Editor" und wählen Sie "In Storyboard umwandeln". Sie werden nach dem Namen der neuen Storyboard-Datei gefragt und drücken Sie die Eingabetaste.

Es wird eine neue Storyboard-Datei erstellt, in der sich die ausgewählten Ansichts-Controller befinden. Im Main.storyboard wird anstelle dieses View-Controllers ein Storyboard-Referenzobjekt angezeigt. Dies ist Ihre Referenz auf das gerade erstellte neue Storyboard.

21
Dark Innocence

Kopieren und Einfügen (Befehlstaste + C, Befehlstaste + V) funktioniert einwandfrei. Denken Sie jedoch daran, die Outletverbindungen aufzulösen, da Xcode die ursprünglichen Verbindungen beizubehalten scheint.

3
Lubos Ilcik

Kopieren/Einfügen ist möglich, aber es funktioniert nur, wenn beide Storyboards mit dem Xcode-Assistenten-Editor nebeneinander geöffnet sind.

2
Marcos Reboucas

Ich bin auf eine ähnliche Situation gekommen, in der ich in meinem Main Storyboard zu viele Szenen habe und überarbeiten muss .. Die Idee, die ich anfangs hatte, war, mehrere zu markieren und das Kopieren einzufügen, wie von vielen vorgeschlagen. Ich war jedoch besorgt über die Auflösung von Storyboard-Verbindungen zum View-Controller-Code . Nach langem Suchen stellte ich fest, dass seit iOS 9 eine neue Funktion für "Refactor to Storuboard" verfügbar ist. Sie können in Ihrem Quell-Storyboard mehrere Szenen markieren und diese Option im Editor-Menü auswählen. Dann werden alle ausgewählten Szenen aus Ihrem alten Storyboard extrahiert, ein neues Storyboard wird erstellt sowie ein Link zu dem im alten/Haupt-Storyboard. Nützliche Optionen sind: https://code.tutsplus.com/tutorials/ios-9-staying-organized-with-storyboard-references--cms-24226https : //www.raywenderlich.com/115697/ios-9-storyboardss-lehrgang-was neues-in-storyboards

Ich hoffe, dass diese neue offizielle Storyboard-Refactoring-Funktion eine bessere Lösung für diese Art von Problemen bietet.

0
Konstantinos

Oberflächenelemente können mit Copy/Paste zwischen Xib- und Storyboard-Dateien verschoben werden.

Das funktionierte ursprünglich nicht für mich. Ich habe versucht, eine UICollectionViewCell von einem dedizierten Xib in unser Main Storyboard zu kopieren. Die Zelle würde nicht in das Storyboard kopieren.

Die Lösung bestand darin, das spezifische übergeordnete Element im Storyboard auszuwählen. Die UICollectionViewCell kann im Storyboard als untergeordnetes Element einer UICollectionView eingefügt werden. Andernfalls kann sie nicht eingefügt werden. 

Wenn Sie Probleme beim Einfügen eines bestimmten Elements haben, vergewissern Sie sich, dass Sie ein gültiges übergeordnetes Element ausgewählt haben, bevor Sie das Einfügen versuchen.

0
pkamb

Wenn die Verwendung von Cut-n-Paste für Sie fehlschlägt, gibt es eine Problemumgehung. Das Einfügen schlägt fehl, wenn sich jetzt ViewController in der Datei befindet, in die eingefügt wird. Dadurch kann das Storyboard nicht zum Einfügen ausgewählt werden. XCode lehnt das Einfügen ab. Sie müssen also zunächst einen leeren View-Controller aus der Bibliothek in das Storyboard ziehen. Wählen Sie dann diesen ViewController im Storyboard aus und das Einfügen wird funktionieren. Nach dem Einfügen können Sie den Dummy-ViewController löschen. Du wirst es nicht mehr brauchen.

0
nishant