Storyboards in Xamarin.iOS

In diesem Leitfaden erläutern wir, was ein Storyboard ist, und untersuchen einige der wichtigsten Komponenten, z. B. Segues. Wir werden uns ansehen, wie Storyboards erstellt und verwendet werden können und welche Vorteile sie für einen Entwickler haben.

Bevor das Storyboard-Dateiformat von Apple als visuelle Darstellung der Benutzeroberfläche einer iOS-Anwendung eingeführt wurde, haben Entwickler XIB-Dateien für jeden Ansichtscontroller erstellt und die Navigation zwischen jeder Ansicht manuell programmiert. Mithilfe eines Storyboards können Entwickler sowohl Ansichtscontroller als auch die Navigation zwischen ihnen auf einer Entwurfsoberfläche definieren und WYSIWYG-Bearbeitung der Benutzeroberfläche der Anwendung bieten.

Ein Storyboard kann mit Visual Studio für Mac erstellt und geöffnet werden. In diesem Handbuch wird auch erläutert, wie Sie mit dem Xcode-Schnittstellen-Generator Ihre Storyboards erstellen, während Sie C# zum Programmieren der Navigation verwenden.

Anforderungen

Storyboards können mit Xcode verwendet und in einem Xamarin.iOS-Projekt auf Visual Studio für Mac gestartet werden.

Was ist ein Storyboard?

Ein Storyboard ist die visuelle Darstellung aller Bildschirme in einer Anwendung. Sie enthält eine Sequenz von Szenen, wobei jede Szene einen Ansichtscontroller und seine Ansichten darstellt. Diese Ansichten können Objekte und Steuerelemente enthalten, mit denen Der Benutzer mit Ihrer Anwendung interagieren kann. Diese Sammlung von Ansichten und Steuerelementen (oder Unteransichten) wird als Inhaltsansichtshierarchie bezeichnet. Szenen werden durch Segue-Objekte verbunden, die einen Übergang zwischen Ansichtscontrollern darstellen. Dies wird normalerweise erreicht, indem eine Segue zwischen einem Objekt in der anfänglichen Ansicht und der Verbindungsansicht erstellt wird. Die Beziehungen auf der Entwurfsoberfläche werden in der folgenden Abbildung veranschaulicht:

The relationships on the design surface are illustrated in this image

Wie gezeigt, legt das Storyboard jede Ihrer Szenen mit bereits gerenderten Inhalten dar und veranschaulicht die Verbindungen zwischen ihnen. Wenn wir über Szenen auf einem i Telefon sprechen, ist es sicher, davon auszugehen, dass eine Szene auf dem Storyboard einem Bildschirm mit Inhalt auf dem Gerät entspricht. Mit einem iPad können jedoch mehrere Szenen gleichzeitig angezeigt werden, z. B. mit einem Popover-Ansichtscontroller.

Es gibt viele Vorteile bei der Verwendung von Storyboards zum Erstellen der Benutzeroberfläche Ihrer Anwendung, insbesondere bei der Verwendung von Xamarin. Erstens handelt es sich um eine visuelle Darstellung der Benutzeroberfläche, da alle Objekte – einschließlich benutzerdefinierter Steuerelemente – zur Entwurfszeit gerendert werden. Dies bedeutet, dass Sie vor dem Erstellen oder Bereitstellen Ihrer Anwendung die Darstellung und den Ablauf visualisieren können. Nehmen Sie beispielsweise das vorherige Bild an. Wir können aus einem schnellen Blick auf die Entwurfsoberfläche erkennen, wie viele Szenen vorhanden sind, das Layout jeder Ansicht und wie alles miteinander verknüpft ist. Dies macht Storyboards so leistungsfähig.

Sie können Ereignisse auch mit Storyboards verwalten. Die meisten UI-Steuerelemente verfügen über eine Liste möglicher Ereignisse im Eigenschaftenpad. Der Ereignishandler kann hier hinzugefügt und in einer partiellen Methode in der View Controller-Klasse abgeschlossen werden.

Der Inhalt eines Storyboards wird als XML-Datei gespeichert. Zur Erstellungszeit werden alle .storyboard Dateien in Binärdateien kompiliert, die als Nibs bezeichnet werden. Zur Laufzeit werden diese Nibs initialisiert und instanziiert, um neue Ansichten zu erstellen.

Segues

Ein Segue- oder Segue-Objekt wird in der iOS-Entwicklung verwendet, um einen Übergang zwischen Szenen darzustellen. Um einen Segue zu erstellen, halten Sie die STRG-TASTE gedrückt, und klicken Sie von einer Szene in eine andere. Während Sie die Maus ziehen, wird ein blauer Verbinder angezeigt, der angibt, wo der Segue führen wird. Dies wird in der folgenden Abbildung gezeigt:

A blue connector appears, indicating where the segue will lead as demonstrated in this image

Bei der Maus wird ein Menü angezeigt, mit dem Sie die Aktion für den Segue auswählen können. Es sieht möglicherweise ähnlich wie in den folgenden Bildern aus:

Klassen vor iOS 8 und Größe:

The Action Segue dropdown without Size Classes

Bei Verwendung von Größenklassen und adaptiven Segues:

The Action Segue dropdown with Size Classes

Wichtig

Wenn Sie VMWare für Ihren virtuellen Windows-Computer verwenden, wird strg-click standardmäßig als Kontextmenü zugeordnet. Um eine Segue zu erstellen, bearbeiten Sie Ihre Tastatureinstellungen über "Einstellungen>", "Tastatur- und Maus-Tastenkombinationen>", und ordnen Sie die sekundäre Schaltfläche wie unten dargestellt neu zu:

Keyboard and Mouse preference settings

Sie sollten jetzt in der Lage sein, einen Segue zwischen Ihren Ansichtscontrollern wie gewohnt hinzuzufügen.

Es gibt verschiedene Arten von Übergängen, die jeweils die Darstellung eines neuen Ansichtscontrollers für den Benutzer und die Interaktion mit anderen Ansichtscontrollern im Storyboard steuern. Diese werden unten erläutert. Es ist auch möglich, ein Segue-Objekt zu unterklassen, um einen benutzerdefinierten Übergang zu implementieren:

  • Show /Push – Ein Push-Segue fügt den Ansichtscontroller zum Navigationsstapel hinzu. Es wird davon ausgegangen, dass der Ansichtscontroller, der den Push stammt, Teil desselben Navigationscontrollers ist wie der Ansichtscontroller, der dem Stapel hinzugefügt wird. Dies funktioniert genauso wie pushViewController , und wird in der Regel verwendet, wenn es eine Beziehung zwischen den Daten auf den Bildschirmen gibt. Die Verwendung des Push-Segue bietet Ihnen den Luxus, eine Navigationsleiste mit einer Zurück-Schaltfläche und einem Titel zu jeder Ansicht im Stapel hinzugefügt zu haben, sodass Sie einen Drilldown durch die Ansichtshierarchie ermöglichen.

  • Modal – Eine modale Segue erstellt eine Beziehung zwischen zwei Ansichtscontrollern in Ihrem Projekt, mit der Möglichkeit, einen animierten Übergang anzuzeigen. Der untergeordnete Ansichtscontroller verdeckt den übergeordneten Ansichtscontroller vollständig, wenn er in die Ansicht eingebunden wird. Im Gegensatz zu einer Push-Segue, die eine Zurück-Taste für uns hinzufügt, müssen Sie eine DismissViewController bei Verwendung eines modalen Segue verwenden, um zum vorherigen Ansichtscontroller zurückzukehren.

  • Benutzerdefiniert – Jede benutzerdefinierte Segue kann als Unterklasse von UIStoryboardSegueerstellt werden.

  • Entspannen – Ein entspannender Segue kann verwendet werden, um durch einen Push oder modalen Segue zu navigieren, z. B. durch Schließen des modal präsentierten Ansichtscontrollers. Darüber hinaus können Sie sich nicht nur durch eine, sondern eine Reihe von Push- und modalen Segues entspannen und mehrere Schritte in Ihrer Navigationshierarchie mit einer einzigen Entspannungsaktion zurückwechseln. Wenn Sie verstehen möchten, wie Sie einen Entspannen-Segue in iOS verwenden, lesen Sie das Rezept "Creating Relax Segues ".

  • Sourceless – Eine quelllose Segue gibt die Szene an, die den anfänglichen Ansichtscontroller enthält und daher die Ansicht, die der Benutzer zuerst sehen wird. Sie wird durch den hier gezeigten Segue dargestellt:

    A sourceless segue

Adaptive Segue-Typen

iOS 8 hat Größenklassen eingeführt, damit eine iOS-Storyboarddatei mit allen verfügbaren Bildschirmgrößen funktioniert, sodass Entwickler eine Benutzeroberfläche für alle iOS-Geräte erstellen können. Standardmäßig verwenden alle neuen Xamarin.iOS-Anwendungen Größenklassen. Informationen zum Verwenden von Größenklassen aus einem älteren Projekt finden Sie im Leitfaden "Einführung in Unified Storyboards ".

Jede Anwendung, die Größenklassen verwendet, verwendet auch die neuen adaptiven Segues. Denken Sie beim Verwenden von Größenklassen daran, dass Sie nicht direkt angeben, ob Sie ein i Telefon oder iPad verwenden. Mit anderen Worten, Sie erstellen eine Benutzeroberfläche, die immer gleich aussieht, unabhängig davon, mit wie viel Platz sie arbeiten muss. Adaptive Segues funktionieren, indem sie die Umgebung beurteilen und bestimmen, wie Inhalte am besten präsentiert werden sollen. Die adaptiven Segues werden unten angezeigt:

The Adaptive Segues dropdown

Segue Beschreibung
Anzeigen Dies ist einem Push-Segue sehr ähnlich, aber es berücksichtigt den Inhalt des Bildschirms.
Details anzeigen Wenn die App eine Master- und Detailansicht anzeigt (z. B. in einem Geteilten Ansichtscontroller auf einem iPad), ersetzt der Inhalt die Detailansicht. Wenn die App nur den Master oder das Detail anzeigt, ersetzt der Inhalt den oberen Rand des Ansichtscontrollerstapels.
Präsentation Dies ähnelt dem Modal-Segue und ermöglicht die Auswahl von Präsentations- und Übergangsstilen.
Popover-Präsentation Dadurch werden Inhalte als Popup angezeigt.

Übertragen von Daten mit Segues

Die Vorteile eines Segue enden nicht mit Übergängen. Sie können auch verwendet werden, um die Übertragung von Daten zwischen Ansichtscontrollern zu verwalten. Dies wird erreicht, indem die PrepareForSegue Methode auf dem ersten Ansichtscontroller überschrieben und die Daten selbst verarbeitet werden. Wenn der Segue ausgelöst wird – z. B. mit einem Tastendruck – ruft die Anwendung diese Methode auf und bietet die Möglichkeit, den neuen Ansichtscontroller vorzubereiten, bevor eine Navigation eintritt. Im folgenden Code aus dem Telefon wortbeispiel wird dies veranschaulicht:

public override void PrepareForSegue (UIStoryboardSegue segue,
NSObject sender)
{
    base.PrepareForSegue (segue, sender);

    var callHistoryController = segue.DestinationViewController
                                  as CallHistoryController;

    if (callHistoryController != null) {
        callHistoryController.PhoneNumbers = PhoneNumbers;
    }
}

In diesem Beispiel wird die PrepareForSegue Methode aufgerufen, wenn der Segue vom Benutzer ausgelöst wird. Sie müssen zuerst eine Instanz des "empfangenden" Ansichtscontrollers erstellen und dies als Zielansichtscontroller des Segue festlegen. Dies erfolgt über die folgende Codezeile:

var callHistoryController = segue.DestinationViewController as CallHistoryController;

Die Methode verfügt jetzt über die Möglichkeit, Eigenschaften für die DestinationViewController. In diesem Beispiel wird diese Möglichkeit genutzt, indem eine Liste, die an das Objekt mit demselben CallHistoryController Namen aufgerufen PhoneNumbers und zugewiesen wird, übergeben wird:

if (callHistoryController != null) {
        callHistoryController.PhoneNumbers = PhoneNumbers;
    }

Nachdem der Übergang abgeschlossen ist, wird dem Benutzer die CallHistoryController mit der ausgefüllten Liste angezeigt.

Hinzufügen eines Storyboards zu einem Nicht-Storyboard-Projekt

Gelegentlich müssen Sie möglicherweise ein Storyboard zu einer zuvor nicht-Storyboarddatei hinzufügen. Sie können den Prozess in Visual Studio für Mac optimieren, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine neue Storyboarddatei, indem Sie zum Storyboard> "Neue > Datei" > navigieren.

    The new file dialog

  2. Fügen Sie ihren Storyboardnamen zum Abschnitt "Hauptschnittstelle " der Info.plist hinzu.

    The Info.plist editor

    Dies entspricht dem Instanziieren des Anfänglichen Ansichtscontrollers in der FinishedLaunching Methode innerhalb des App-Delegaten. Mit diesem Optionssatz instanziiert die Anwendung ein Fenster (siehe nächster Schritt), lädt das Standard Storyboard und weist eine Instanz des Anfänglichen Ansichtscontrollers des Storyboards (die neben der quelllosen Segue) als RootViewController Eigenschaft des Fensters zu. Anschließend wird das Fenster auf dem Bildschirm angezeigt.

  3. Überschreiben Sie in der AppDelegateStandardmethode die Standardmethode Window mit dem folgenden Code, um die Fenstereigenschaft zu implementieren:

    public override UIWindow Window {
        get;
        set;
    }
    

Erstellen eines Storyboards mit Xcode

Ein Storyboard kann mit Xcode für die Verwendung in Ihren mit Visual Studio für Mac entwickelten iOS-Apps erstellt und geändert werden.

Storyboards ersetzen ganz einzelne XIB-Dateien in Ihrem Projekt, aber einzelne Ansichtscontroller in einem Storyboard können weiterhin mithilfe Storyboard.InstantiateViewControllervon Instanziierung instanziiert werden.

Manchmal haben Anwendungen spezielle Anforderungen, die nicht mit den integrierten Storyboardübergängen des Designers behandelt werden können. Wenn Sie beispielsweise eine Anwendung erstellen möchten, die verschiedene Bildschirme von derselben Schaltfläche aus startet, je nach dem aktuellen Zustand einer Anwendung, sollten Sie die Ansichtscontroller manuell instanziieren und den Übergang selbst programmieren.

Der folgende Screenshot zeigt zwei Ansichtscontroller auf der Entwurfsoberfläche ohne Segue dazwischen. Im nächsten Abschnitt wird erläutert, wie dieser Übergang im Code eingerichtet werden kann.

  1. Hinzufügen eines leeren i Telefon Storyboards zu einem vorhandenen Projekt:

    Adding storyboard

  2. Doppelklicken Sie auf die Storyboarddatei, oder klicken Sie mit der rechten Maustaste, und wählen Sie "Mit > Xcode-Schnittstellen-Generator öffnen" aus, um sie im Schnittstellen-Generator von Xcode zu öffnen.

  3. Öffnen Sie in Xcode die Bibliothek (über "Bibliothek anzeigen > anzeigen" oder UMSCHALT+BEFEHL+L), um eine Liste von Objekten anzuzeigen, die dem Storyboard hinzugefügt werden können. Fügen Sie ein Navigation Controller Objekt zum Storyboard hinzu, indem Sie das Objekt aus der Liste auf das Storyboard ziehen. Standardmäßig Navigation Controller werden zwei Bildschirme bereitgestellt. Der Bildschirm auf der rechten Seite ist eine TableViewController , die Sie durch eine einfachere Ansicht ersetzen, sodass sie entfernt werden kann, indem Sie auf die Ansicht klicken und die ENTF-TASTE drücken.

    Adding a NavigationController from the Library

  4. Dieser Ansichtscontroller verfügt über eine eigene benutzerdefinierte Klasse und benötigt auch eine eigene Storyboard-ID. Wenn Sie auf das Feld oberhalb dieser neu hinzugefügten Ansicht klicken, gibt es drei Symbole, von denen ganz links der Ansichtscontroller für die Ansicht darstellt. Durch Auswählen dieses Symbols können Sie dann die Klassen- und ID-Werte auf der Registerkarte "Identität" des rechten Bereichs festlegen. Legen Sie diese Werte auf MainViewController und stellen Sie sicher, dass sie überprüft Use Storyboard IDwerden.

    Setting the MainViewController in the identity panel

  5. Ziehen Sie mithilfe der Bibliothek ein Ansichtscontroller-Steuerelement erneut auf den Bildschirm. Dies wird als Stammansichtscontroller festgelegt. Halten Sie die CTRL-TASTE gedrückt, klicken Sie auf den Navigationscontroller links zum neu hinzugefügten Ansichtscontroller auf der rechten Seite, und wählen Sie den Stammansichtscontroller im Menü aus.

    Adding a NavigationController from the Library and setting the MainViewController as a Root View Controller

  6. Diese App navigiert zu einer anderen Ansicht. Fügen Sie also genau wie zuvor eine weitere Ansicht zum Storyboard hinzu. Rufen Sie sie PinkViewControllerauf, und legen Sie diese Werte auf die gleiche Weise wie bei der MainViewController.

    Screenshot shows the storyboard with three views.

  7. Da der Ansichtscontroller einen rosa Hintergrund aufweist, legen Sie diese Eigenschaft im Attributbereich mithilfe der Dropdownliste neben Background.

    Screenshot shows the storyboard from the previous step with the rightmost screen changed to a pink background.

  8. Da wir möchten, dass die MainViewController Navigation zum PinkViewControllerErsten erfolgt, benötigt der erste eine Schaltfläche, mit der sie interagieren kann. Verwenden Sie die Bibliothek, um der MainViewControllerSchaltfläche eine Schaltfläche hinzuzufügen.

    Adding a Button to the MainViewController

Das Storyboard ist fertig, aber wenn Sie das Projekt jetzt bereitstellen, erhalten Sie einen leeren Bildschirm. Dies liegt daran, dass Sie die IDE weiterhin anweisen müssen, das Storyboard zu verwenden und einen Stammansichtscontroller einzurichten, der als erste Ansicht dienen soll. Dies kann normalerweise über Project-Optionen erfolgen, wie zuvor gezeigt. In diesem Beispiel fügen wir dem AppDelegate jedoch den folgenden Code hinzu, um dasselbe Ergebnis zu erzielen:

public partial class AppDelegate : UIApplicationDelegate
{
    UIWindow window;
    public static UIStoryboard Storyboard = UIStoryboard.FromName ("MainStoryboard", null);
    public static UIViewController initialViewController;

    public override bool FinishedLaunching (UIApplication app, NSDictionary options)
    {
        window = new UIWindow (UIScreen.MainScreen.Bounds);

        initialViewController = Storyboard.InstantiateInitialViewController () as UIViewController;

        window.RootViewController = initialViewController;
        window.AddSubview(initialViewController.View);
        window.MakeKeyAndVisible ();
        return true;
    }
}

Das ist viel Code, aber nur wenige Zeilen sind unbekannt. Zuerst registrieren Sie das Storyboard bei der AppDelegate , indem Sie den Namen des Storyboards "MainStoryboard" übergeben. Als Nächstes weisen Sie der Anwendung an, einen anfänglichen Ansichtscontroller aus dem Storyboard zu instanziieren, indem Sie das Storyboard aufrufen InstantiateInitialViewController und diesen Ansichtscontroller als Stammansichtscontroller der Anwendung festlegen. Diese Methode bestimmt den ersten Bildschirm, den der Benutzer sieht und erstellt eine neue Instanz dieses Ansichtscontrollers.

Beachten Sie im Lösungsbereich, dass die IDE eine MainViewcontroller.cs Klasse und die entsprechende *.designer.cs Datei erstellt hat, wenn Sie den Klassennamen in Schritt 4 zum Eigenschaftenkreuz hinzugefügt haben. Diese Klasse hat einen speziellen Konstruktor erstellt, der eine Basisklasse enthält:

public MainViewController (IntPtr handle) : base (handle)
{
}

Beim Erstellen eines Storyboards mit Xcode fügt die IDE automatisch das [Register] -Attribut oben in der *.designer.cs Klasse hinzu und übergibt einen Zeichenfolgenbezeichner, der mit der im vorherigen Schritt angegebenen Storyboard-ID identisch ist. Dadurch wird C# mit der relevanten Szene im Storyboard verknüpft.

[Register ("MainViewController")]
public partial class MainViewController : UIViewController
{
    public MainViewController (IntPtr handle) : base (handle)
    {
    }
    //...
}

Weitere Informationen zum Registrieren von Klassen und Methoden finden Sie unter Type Registrar.

Der letzte Schritt in dieser Klasse besteht darin, die Taste und den Übergang zum rosa Ansichtscontroller zu verbinden. Sie instanziieren das PinkViewController Storyboard. Anschließend programmieren Sie eine Push-Segue mit PushViewController, wie im folgenden Beispielcode dargestellt:

public partial class MainViewController : UIViewController
{
    UIViewController pinkViewController;

    public MainViewController (IntPtr handle) : base (handle)
    {
    }

    public override void AwakeFromNib ()
    {
        // Called when loaded from xib or storyboard.
        this.Initialize ();
    }

    public void Initialize()
    {
        //Instantiating View Controller with Storyboard ID 'PinkViewController'
        pinkViewController = Storyboard.InstantiateViewController ("PinkViewController") as PinkViewController;
    }

    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();

        //When we push the button, we will push the pinkViewController onto our current Navigation Stack
        PinkButton.TouchUpInside += (o, e) =>
        {
            this.NavigationController.PushViewController (pinkViewController, true);
        };
    }
}

Durch Ausführen der Anwendung wird eine 2-Bildschirm-Anwendung erzeugt:

Sample app run screens

Bedingte Segues

Häufig hängt der Wechsel von einem Ansichtscontroller zum nächsten von einer bestimmten Bedingung ab. Wenn wir beispielsweise einen einfachen Anmeldebildschirm erstellen, möchten wir nur zum nächsten Bildschirm wechseln, wenn der Benutzername und das Kennwort überprüft wurden.

Im nächsten Beispiel fügen wir dem vorherigen Beispiel ein Kennwortfeld hinzu. Der Benutzer kann nur auf den PinkViewController zugreifen, wenn er das richtige Kennwort eingibt, andernfalls wird ein Fehler angezeigt.

Bevor wir beginnen, führen Sie die vorherigen Schritte 1 – 8 aus. In diesen Schritten erstellen wir unser Storyboard, beginnen mit der Erstellung unserer Benutzeroberfläche und teilen unserem App-Delegaten mit, welcher Ansichtscontroller als RootViewController verwendet werden soll.

  1. Als Nächstes erstellen wir unsere Benutzeroberfläche und fügen die zusätzlichen Ansichten hinzu, die MainViewController aufgelistet sind, damit sie im folgenden Screenshot wie folgt aussehen:

    • UITextField
      • Name: PasswordTextField
      • Platzhalter: "Kennwort eingeben"
    • UILabel
      • Text: 'Fehler: Falsches Kennwort. Du darfst nicht bestehen!'
      • Color (Farbe): Red (Rot)
      • Ausrichtung: Zentriert
      • Linien: 2
      • Kontrollkästchen "Ausgeblendet" aktiviert

    Center Lines

  2. Erstellen Sie eine Segue zwischen der Schaltfläche "Gehe zu Rosa" und dem Ansichtscontroller, indem Sie das Steuerelement aus dem PinkButton-Steuerelement auf den PinkViewController ziehen und dann "Per Maus nach oben drücken" auswählen.

  3. Klicken Sie auf "Segue", und geben Sie ihm den BezeichnerSegueToPink:

    Click on the Segue and give it the Identifier SegueToPink

  4. Fügen Sie schließlich der MainViewController Klasse die folgende ShouldPerformSegue Methode hinzu:

    public override bool ShouldPerformSegue (string segueIdentifier, NSObject sender)
    {
    
        if(segueIdentifier == "SegueToPink"){
            if (PasswordTextField.Text == "password") {
                PasswordTextField.ResignFirstResponder ();
                return true;
            }
            else{
                ErrorLabel.Hidden = false;
                return false;
            }
        }
        return base.ShouldPerformSegue (segueIdentifier, sender);
    }
    

In diesem Code haben wir den segueIdentifier mit unserem SegueToPink Segue-Code abgeglichen, sodass wir dann eine Bedingung testen können. In diesem Fall ein gültiges Kennwort. Wenn unsere Bedingung zurückgegeben truewird, wird die Segue die PinkViewController. Wenn falseder neue Ansichtscontroller nicht angezeigt wird.

Wir können diesen Ansatz auf jeden Segue auf diesem Ansichtscontroller anwenden, indem wir das SegueIdentifier-Argument auf die ShouldPerformSegue-Methode überprüfen. In diesem Fall haben wir nur einen Segue-Bezeichner – SegueToPink.

Weitere Informationen finden Sie in der Storyboards.Conditional-Lösung im Beispiel für manuelle Storyboards für ein funktionierendes Beispiel.

Zusammenfassung

In diesem Artikel wird das Konzept von Storyboards vorgestellt und erläutert, wie sie bei der Entwicklung von iOS-Anwendungen von Vorteil sein können. Es werden Szenen, Ansichtscontroller, Ansichten und Ansichtshierarchien erläutert und wie Szenen mit verschiedenen Segues-Typen verknüpft werden. Außerdem werden Ansichtscontroller manuell aus einem Storyboard instanziiert und bedingte Segues erstellt.