Ich versuche, eine plattformübergreifende Anwendung 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 unter iOS kein Navigationselement.Schaltfläche "Zurück zum Menü" in der iOS-Navigationsleiste mit Xamarin.Forms anzeigen
I brach es auf das folgende Mindest Beispiel unten abgeleitet von der Xamarin Lösungsvorlage „Blank App (Xamarin.Forms Geteilt)“ und Ersetzen der Umsetzung des App
-Klasse:
public class App
{
static MasterDetailPage MDPage;
public static Page GetMainPage()
{
return new NavigationPage(
MDPage = new MasterDetailPage {
Master = new ContentPage {
Title = "Master",
Content = new StackLayout {
Children = { Link("A"), Link("B"), Link("C") }
},
},
Detail = new ContentPage { Content = new Label { Text = "A" } },
});
}
static Button Link(string name)
{
var button = new Button { Text = name };
button.Clicked += delegate {
MDPage.Detail = new ContentPage { Content = new Label { Text = name } };
MDPage.IsPresented = false;
};
return button;
}
}
Die Lösung sowie Als Ergebnis Screenshots finden Sie unter .
Meine Idee war, eine solche "Menü" oder "Zurück" -Schaltfläche in den iOS-spezifischen Code hinzuzufügen, der die window.RootViewController.NavigationController.NavigationBar
innerhalb der AppDelegate
Klasse modifiziert. Aber window.RootViewController.NavigationController
ist null
.
Das Ersetzen des Rückgabetyps von GetMainPage()
durch NavigationPage
anstelle von Page
hilft nicht.
Ich könnte Toolbar Elemente über MDPage.ToolbarItems.Add(...)
hinzufügen, aber sie erscheinen in der oberen rechts Ecke.
Ursprünglich habe ich diese Lösung als Update für meine Frage veröffentlicht. Gerade jetzt habe ich beschlossen, es in eine explizite Antwort zu verschieben. – Falko
Ist diese App-Klasse nicht dieselbe wie die App-Klasse, die die Application-Klasse erweitert? – Krrish
@Krrish: Als ich diese Lösung fand (kurz nachdem ich die Frage gepostet hatte), war dies der Weg, um die Anwendungsklasse zu erweitern. Aufgrund eines Xamarin.Forms-Updates hat sich das ziemlich verändert. Unter [hier] (http://xforms-kickstarter.com/#a-slide-out-menu- using-a-master-detail-page) finden Sie ein aktuelles Beispiel für Master-Detail-Seiten. – Falko