Я создавал демонстрационное приложение в .Net Maui и хотел вставить страницу перед навигацией, используя метод навигации InsertPageBefore.
Отсылка из здесь
Я нахожусь на MainPage и перехожу на страницу 4, но перед переходом на страницу 4 я хочу вставить страницу 3, чтобы мой стек навигации выглядел так, как показано ниже.
Главная страница/страница 3/страница 4
Это код для перехода на страницу 4
private void Page4ButtonClicked(object sender, EventArgs e)
{
Navigation.InsertPageBefore(new Page3(),new Page4());
}
Мой код App.cs
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new MainPage());
}
Сообщение об ошибке, которое я получаю, «до» должно быть дочерним элементом NavigationPage (параметр «до»)»
Итак, мне нужно создать объект Page4, прежде чем передавать его в InsertPageBefore? @Джейсон
Вы должны сделать это после того, как уже перешли на страницу 4.
В каком файле/классе определен обработчик события Page4ButtonClicked?
Это определено в MainPage @ewerspej
Спасибо, я решил свою проблему благодаря вам, ребята. Мне пришлось вызвать InsertPageBefore в моем методе Page4 OnAppearing.





Благодаря комментариям @Json и @ewerspej.
Я звонил Navigation.InsertPageBefore(new Page3(), new Page4()); с главной страницы.
который должен был быть вызван после перехода на страницу 4.
Итак, если вы хотите добавить страницу в стек навигации после навигации.
Вызовите метод Navigation.InsertPageBefore(new Page3(),this); метод такой.
Публикация этого как ответ для тех, кто все еще застрял в этой проблеме.
Вам нужно использовать существующую ссылку на Page4, которая уже добавлена в стек.