Freigeben über


Arbeiten mit tvOS Split View Controllern in Xamarin

Warnung

Der iOS Designer ist seit Visual Studio 2019, Version 16.8, und Visual Studio 2019 für Mac, Version 8.8, veraltet und wurde in Visual Studio 2019, Version 16.9, bzw. Visual Studio für Mac, Version 8.9, entfernt. Die empfohlene Vorgehensweise zum Erstellen von iOS-Benutzeroberflächen besteht darin, Xcode Interface Builder direkt auf einem Mac auszuführen. Weitere Informationen finden Sie unter Entwerfen von Benutzeroberflächen mit Xcode.

Ein Geteilter Ansichtscontroller präsentiert und verwaltet gleichzeitig einen Master- und Detailansichtscontroller auf dem Bildschirm. Geteilte Ansichtscontroller werden verwendet, um beständigen, fokussierbaren Inhalt in der Masteransicht (der kleinere Abschnitt auf der linken Seite) und verwandte Details in der Detailansicht (der größere Abschnitt auf der rechten Seite) darzustellen.

Beispiel für geteilte Ansicht

Informationen zu Controllern für geteilte Ansicht

Wie oben erwähnt, verwaltet ein Split View Controller einen Master- und Detailansichtscontroller, der nebeneinander dargestellt wird, wobei der Master die kleinere Ansicht auf der linken Seite ist, die Detailgröße auf der rechten Seite.

Darüber hinaus kann der Masteransichtscontroller ausgeblendet oder wie erforderlich angezeigt werden:

Der Masteransichtscontroller ausgeblendet

Controller für geteilte Ansichten werden häufig verwendet, um eine Liste gefilterter Inhalte mit den Kategorien in der Masteransicht und den gefilterten Ergebnissen in der Detailansicht darzustellen. Dies wird in der Regel als Tabellenansicht auf der linken Seite und eine Sammlungsansicht auf der rechten Seite dargestellt.

Beim Entwerfen einer Benutzeroberfläche, die einen Controller für geteilte Ansicht erfordert, schlägt Apple vor, Master- und Detailansichtscontroller zu verwenden, die sich nicht ändern (nur die Inhaltsänderungen, nicht die Struktur). Wenn Sie Ansichtscontroller austauschen müssen, empfiehlt es sich, einen Navigationscontroller als Basis des Ansichtscontrollers zu verwenden, der geändert werden muss (Master oder Detail).

Apple hat die folgenden Vorschläge für die Arbeit mit Split View Controllern:

  • Verwenden Sie den korrekten geteilten Prozentsatz – Standardmäßig verwendet der Controller für geteilte Ansicht ein Drittel des Bildschirms für den Masteransichtscontroller und zwei Drittel für den Detailansichtscontroller. Optional können Sie eine 50/50-Teilung verwenden. Wählen Sie den richtigen Prozentsatz aus, damit Ihre Inhalte auf dem Bildschirm ausgeglichen angezeigt werden.
  • Beibehalten der Hauptauswahl – Während sich der Inhalt in der Detailansicht ändern kann, auf die Auswahl eines Benutzers in der Masteransicht reagiert, sollte der Inhalt der Masteransicht behoben werden. Darüber hinaus sollten Sie das aktuell ausgewählte Element in der Masteransicht deutlich anzeigen.
  • Verwenden Sie einen einzelnen, einheitlichen Titel – In der Regel sollten Sie einen einzelnen, zentrierten Titel in der Detailansicht anstelle eines Titels sowohl in der Detail- als auch in der Masteransicht verwenden.

Controller und Storyboards für geteilte Ansicht

Die einfachste Möglichkeit zum Arbeiten mit Split View Controllern in einer Xamarin.tvOS-App besteht darin, sie mithilfe des iOS-Designers zur Benutzeroberfläche der App hinzuzufügen.

  1. Doppelklicken Sie auf dem Lösungspad auf die Main.storyboard Datei, und öffnen Sie sie zur Bearbeitung.

  2. Ziehen Sie einen Controller für geteilte Ansicht aus der Toolbox , und legen Sie sie in der Ansicht ab:

    Ein Controller für geteilte Ansicht

  3. Standardmäßig installiert der iOS-Designer einen Navigationscontroller und einen Ansichtscontroller in der Masteransicht. Wenn dies nicht den Anforderungen Ihrer App entspricht, löschen Sie sie einfach.

  4. Wenn Sie die Standardmasteransicht entfernen, ziehen Sie einen neuen Ansichtscontroller auf die Entwurfsoberfläche:

    Ein Ansichtscontroller

  5. Ctrl-Click und drag from the Split View Controller to the new Master View Controller.

  6. Wählen Sie "Master" im Popupmenü aus:

    Wählen Sie

  7. Entwerfen Sie den Inhalt Ihrer Master- und Detailansichten:

    Beispielslayout

  8. Weisen Sie Namen auf der Registerkarte "Widget" des Eigenschaftenpads zu, um mit Ihren UI-Steuerelementen im C#-Code zu arbeiten.

  9. Speichern Sie Ihre Änderungen, und kehren Sie zu Visual Studio für Mac zurück.

Weitere Informationen zum Arbeiten mit Storyboards finden Sie in unserem Schnellstarthandbuch für Hello, tvOS.

Arbeiten mit Controllern für geteilte Ansicht

Wie oben erwähnt, wird ein Controller für geteilte Ansicht häufig in Situationen verwendet, in denen Sie gefilterten Inhalt für den Benutzer anzeigen. Die Standard Kategorien werden links in der Masteransicht und die gefilterten Ergebnisse rechts in der Detailansicht basierend auf der Auswahl des Benutzers angezeigt.

Zugreifen auf Master und Detail

Wenn Sie programmgesteuert auf die Master- und Detailansichtscontroller zugreifen müssen, verwenden Sie die ViewControllers Eigenschaft des Geteilten Ansichtscontrollers. Zum Beispiel:

// Gain access to master and detail view controllers
var masterController = ViewControllers [0] as MasterViewController;
var detailController = ViewControllers [1] as DetailViewController;

Es wird als Array dargestellt, wobei das erste Element (0) im Masteransichtscontroller und das zweite Element (1) das Detail ist.

Zugreifen auf Details vom Master-Shape

Da Sie in der Regel detaillierte Informationen in der Detailansicht basierend auf der Auswahl des Benutzers im Master anzeigen, benötigen Sie eine Möglichkeit, über das Master-Shape auf das Detail zuzugreifen.

Die einfachste Möglichkeit hierfür besteht darin, eine Eigenschaft in Ihrer Master View Controller-Klasse verfügbar zu machen, z. B.:

public DetailViewController DetailController { get; set;}

Überschreiben Sie im Geteilten Ansichtscontroller die ViewDidLoad Methode, und binden Sie die beiden Ansichten zusammen. Zum Beispiel:

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

    // Gain access to master and detail view controllers
    var masterController = ViewControllers [0] as MasterViewController;
    var detailController = ViewControllers [1] as DetailViewController;

    // Wire-up views
    masterController.SplitViewController = this;
    masterController.DetailController = detailController;
    detailController.SplitViewController = this;
}

Sie können Eigenschaften und Methoden für den Detailansichtscontroller verfügbar machen, den der Master verwenden kann, um neue Daten nach Bedarf darzustellen.

Ein- und Ausblenden von Master

Optional können Sie den Master-Ansichtscontroller mithilfe der PreferredDisplayMode Eigenschaft des Geteilten Ansichtscontrollers ein- und ausblenden. Zum Beispiel:

// Show hide split view
if (SplitViewController.DisplayMode == UISplitViewControllerDisplayMode.PrimaryHidden) {
    SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible;
} else {
    SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryHidden;
}

In UISplitViewControllerDisplayMode der Enumeration wird definiert, wie der Master-Ansichtscontroller wie folgt dargestellt wird:

  • Automatisch – tvOS steuert die Präsentation der Master- und Detailansichten.
  • PrimaryHidden – Dadurch wird der Masteransichtscontroller ausgeblendet.
  • AllVisible – Zeigt sowohl den Master- als auch die Detailansichtscontroller nebeneinander an. Dies ist die normale Standardpräsentation.
  • PrimaryOverlay – Der Detailansichtscontroller erweitert sich unter und wird vom Master abgedeckt.

Um den aktuellen Präsentationszustand abzurufen, verwenden Sie die DisplayMode Eigenschaft des Split View Controller.

Zusammenfassung

In diesem Artikel wurde das Entwerfen und Arbeiten mit Split View Controllern in einer Xamarin.tvOS-App behandelt.