Показать кнопку «Вернуться в меню» на панели навигации iOS с помощью Xamarin.Forms
Я пытаюсь создать кроссплатформенное приложение, используя C # и Xamarin.Forms. Он содержит выдвижное меню, выполненное в видеMasterDetailPage
, В то время как на Android есть кнопка со значком приложения в верхнем левом углу, которая переключает слайд-страницу, в iOS такого элемента панели навигации нет.
Я разбил его на следующий минимальный пример, полученный из шаблона решения Xamarin «Пустое приложение (Xamarin.Forms Shared)» и заменив реализациюApp
-учебный класс:
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;
}
}
Решение, а также полученные скриншоты можно найти наGitHub.
Моя идея состояла в том, чтобы добавить такую кнопку «меню» или «назад» в специфичный для iOS код, модифицирующийwindow.RootViewController.NavigationController.NavigationBar
в пределахAppDelegate
учебный класс. Ноwindow.RootViewController.NavigationController
являетсяnull
.
Замена возвращаемого типаGetMainPage()
отNavigationPage
вместоPage
не помогает.
Я мог бы добавить элементы панели инструментов черезMDPage.ToolbarItems.Add(...)
, но они появляются в верхнейправо угол.