Schaltfläche "Zurück zum Menü" in der iOS-Navigationsleiste mit Xamarin.Forms anzeigen

8

Ich versuche eine plattformübergreifende App mit C # und Xamarin.Forms zu erstellen. Es enthält ein Ausklappmenü, das in Form eines MasterDetailPage implementiert ist. Während auf Android eine Schaltfläche mit dem App-Symbol in der oberen linken Ecke vorhanden ist, die die Ausklappseite umschaltet, gibt es auf iOS keine solche Navigationsleiste.

Ich habe es auf das folgende Mindestbeispiel reduziert, das von der Xamarin-Lösungsvorlage "Leere App (Xamarin.Forms Shared)" abgeleitet wurde und die Implementierung der App -Klasse:

ersetzt %Vor%

Die Lösung sowie die resultierenden Screenshots finden Sie unter GitHub .

Meine Idee war, einen solchen "Menü" - oder "Zurück" -Button in den iOS-spezifischen Code einzufügen, der window.RootViewController.NavigationController.NavigationBar innerhalb der AppDelegate -Klasse modifiziert. Aber window.RootViewController.NavigationController ist null .

Das Ersetzen des Rückgabetyps von GetMainPage() von NavigationPage anstelle von Page hilft nicht.

Ich könnte Symbolleistenelemente über MDPage.ToolbarItems.Add(...) hinzufügen, aber sie erscheinen in der oberen rechten -Ecke.

    
Falko 11.07.2014, 14:28
quelle

3 Antworten

1

Ich habe endlich eine Lösung gefunden. Der Code benötigt grundsätzlich zwei kleine Korrekturen:

  1. Wrap alle DetailPage s in NavigationPage , aber nicht MasterDetailPage (siehe # 1, # 2 und # 3 unten).
  2. Fügen Sie% Icon zu MasterPage bei iOS hinzu (siehe # 4 unten). Vergiss nicht, die tatsächliche PNG (!) Zu den iOS-Ressourcen.

Das Mindestarbeitsbeispiel ist wie folgt:

%Vor%     
Falko 19.01.2016, 14:08
quelle
5

TL; DR

Im Wesentlichen muss Ihre Detail Seite in eine NavigationPage eingebunden werden, damit die Zurück-Schaltfläche in iOS erscheint.

Hier ist ein Beispiel, wie ich meine Apps strukturiere.

App.cs

%Vor%

MainPage.cs

%Vor%

Nachdem Sie dies getan haben, verhält sich Ihre Navigationsleiste wie erwartet und Ihre ActionBar ebenfalls.

Wenn Sie durch die App navigieren möchten, verwenden Sie die statisch definierte Navigation

%Vor%     
Chase Florell 15.07.2014 20:05
quelle
1

Wenn Sie auf der richtigen Spur sind, muss Ihre NavigatePage auf dem Detail so gehen

%Vor%

wäre

%Vor%     
lee 12.07.2014 20:37
quelle