Was ist der Unterschied zwischen einer .xib-Datei und einem .storyboard?

159

Kann jemand mit einfachen Worten den Unterschied zwischen .xib und .storyboard erklären?

George Sachpatzidis
quelle
Ich habe keine Ahnung, was eine .timeline ist, und ich vermute, dass es nichts mit der Facebook-Timeline zu tun hat, auf die sich das Tag bezieht
iandotkelly
1
Sind das zwei völlig getrennte Fragen, George? Wenn Sie sagen .timeline, sprechen Sie auch über Versionen einer gespeicherten Datei ?
Michael Dautermann
Sie hatten hier zwei separate Fragen, also habe ich sie auf eine verfeinert. Die erste Frage wurde hier einige Male gestellt, z. B. in " Fensterbasierte Anwendung auf XCode kann nicht gefunden werden". Daher habe ich diesen Teil entfernt, um mich auf die Storyboarding-Frage zu konzentrieren.
Brad Larson
1
Siehe auch diese ähnliche Frage, wenn Storyboard zu verwenden , und wenn XIBs zu verwenden . Hat ausgezeichnete detaillierte Antworten einschließlich Updates für iOS 8 und Xcode 6.
Basil Bourque

Antworten:

115

Apple hat das Konzept des "storyboarding"iOS5 SDK eingeführt, um Bildschirme in Ihrer App zu vereinfachen und besser zu verwalten. Sie können die .xibArt der Entwicklung weiterhin verwenden .

Pre-Storyboard, mit dem jeder UIViewControllerverbunden war .xib. Storyboarderreicht zwei Dinge:

  1. .storyboardist im Wesentlichen eine einzige Datei für alle Ihre Bildschirme in der App und zeigt den Fluss der Bildschirme. Auf seguesdiese Weise können Sie / Übergänge zwischen Bildschirmen hinzufügen . Auf diese Weise wird der für die Verwaltung mehrerer Bildschirme erforderliche Boilerplate-Code minimiert.

  2. Minimiert die Gesamtzahl der Dateien in einer App.

Sie können die Verwendung Storyboardbeim Erstellen eines neuen Projekts vermeiden, indem Sie die Option "Storyboard verwenden" deaktivieren.

Sie können sich auf dieses Tutorial beziehen, um loszulegen.

Sagar Hatekar
quelle
5
Ersetzt Storyboarding die Notwendigkeit von .xib-Dateien?
William Sham
16
Idealerweise ja. 1 .storyboard file = 'n' no. von .xib-Dateien.
Sagar Hatekar
2
Was ist jedoch mit Übergängen zwischen Ansichten? Ich weiß, dass es Segues gibt, aber es gibt nur wenige verschiedene Arten von Segues. Ich gehe davon aus, dass Sie immer noch auf die gleiche Weise wie zuvor zwischen Ansichten wechseln können, aber wenn Sie keinen Segue verwenden, würde es im Storyboard seltsam aussehen, oder? Was denkst du darüber?
Dontangg
1
In diesem Fall glaube ich, dass die NavigationController ins Spiel kommen würden?
Sagar Hatekar
lustige Tatsache: Ich benutze diesen Beitrag, um meinen (eingeschränkten) iOS-
Kredit zu demonstrieren
22

Ja, Sie können weiterhin eine fensterbasierte Anwendung für iOS 5 erstellen. Wenn Sie die Vorlage "Leeres Projekt" verwenden, wird im App-Delegaten ein Fenster für Sie erstellt. Von dort aus können Sie wie gewohnt XIB-Dateien oder ein neues Storyboard hinzufügen.

Ich gehe davon aus, dass Sie eher "Storyboards" als "Timeline" meinen. Mit Storyboards können Sie alle Ansichten in Ihren Anwendungen und ihre Wechselbeziehungen visuell abbilden. Wenn Sie mit Storyboards nur anfangen, gibt es eine Einführung in den Storyboards in den WWDC 2011 Videos hier . Der Stanford iOS-Kurs 2011 für iTunes-U ist auch iOS 5-spezifisch und umfasst Storyboards und mehr.

Nathanial Woolls
quelle
15

Ein Storyboard ist wie eine Leinwand, auf der Sie alle Ihre .xib-Dateien ablegen. Sie haben keine .xibs mehr, sondern nur View Controller direkt auf Ihrer Leinwand.

robertfiorentino
quelle
2
Möglicherweise die nützlichste Antwort.
Munib
9

Storyboard ist eine neue Funktion, die seit der Veröffentlichung von Xcode 4.2 verfügbar ist. Es bietet iOS-Entwicklern eine völlig neue Möglichkeit, eine Benutzeroberfläche zu erstellen und zu gestalten. Vor der Einführung von Storyboard ist es für Anfänger besonders schwierig, eine Navigationsoberfläche (und eine Registerkarte) zu erstellen. Jede Schnittstelle wird in einer separaten xib-Datei gespeichert. Darüber hinaus müssen Sie Code schreiben, um alle Schnittstellen miteinander zu verknüpfen und die Funktionsweise der Navigation zu beschreiben.

Bei Storyboards werden alle Bildschirme in einer einzigen Datei gespeichert. Dies gibt Ihnen einen konzeptionellen Überblick über die visuelle Darstellung der App und zeigt Ihnen, wie die Bildschirme verbunden sind. Xcode bietet einen integrierten Editor zum Layout der Storyboards. Sie können den Übergang (als Segues bezeichnet) zwischen verschiedenen Bildschirmen einfach durch Zeigen und Klicken definieren. Dies bedeutet nicht, dass Sie keinen Code für die Benutzeroberfläche schreiben müssen. Storyboards reduzieren jedoch die Menge an Code, die Sie schreiben müssen, erheblich.

Quelle: http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/

mustafa
quelle
2

XIB:

1) Xib-Dateien werden mit einem einzigen UIView verwendet.

2) Es ist sehr schwierig, komplexe automatische Layouts in xib zu implementieren.

3) Es verbraucht mehr Speicher als Storyboard und ist sehr langsam.

4) Es ist ab iOS5 kompatibel

5) Sie können Lokalisierungen für verschiedene Sprachen und Länder mit verschiedenen XIBs durchführen.

6) Es ist schwierig, dasselbe Xib zur Unterstützung mehrerer Geräte zu verwenden.

Storyboard

1) Sie können alle Ihre Szenen wie View Controller, Nav Controller, TabBar Controller usw. in einem einzigen Storyboard gestalten.

2) Sie können das automatische Layout einfach verwenden, um mathematische Beziehungen zwischen Elementen zu definieren, die ihre Position und Größe definieren.

3) Normalerweise schnell und weist weniger Speicher zu.

4) Es ist nicht kompatibel vor iOS 5.

5) "Dynamic" - und "Prototype" -Zellen können leicht verwendet werden.

6) Storyboards am besten für Apps mit einer kleinen bis mittleren Anzahl von Bildschirmen.

Die beste Antwort, die ich gesehen habe: Xib Vs Storyboard in iOS

Jitendra Gochhayat
quelle
0

XIB und Storyboard werden zum Erstellen von Benutzeroberflächen verwendet.

Ein wichtiger Punkt ist, dass xibs zum Erstellen einer einzelnen Ansicht verwendet werden (es hat einen einzelnen Dateibesitzer oben in der xib-Datei). Für den Viewcontroller können jedoch mehrere Bildschirme hinzugefügt und der Fluss ebenfalls überwacht werden (dies ist der Fall) separate Dateibesitzer).

No_name_untilRecognised
quelle