Привет, ребята! В этом блоге мы изучим основы навигации по .Net Maui/Xamarin Forms.
Если вы хотите изучить навигацию в оболочке, вы можете посетить мой блог о навигации в оболочке, нажав здесь.
Как показано выше, в выходных данных мы собираемся продемонстрировать некоторые из самых простых примеров навигации.
- Простая навигация
- Назад
- Навигация с данными
- Попторутасинк
- Вставить страницу перед
- Удалить страницу
Важно:
Убедитесь, что вы обернули MainPage с помощью NavigationPage в App.cs.
MainPage = new NavigationPage(new MainPage());
Простая навигация
В простой навигации мы переходимнастраницу 1 с главной страницы.
await Navigation.PushAsync (новая страница1());
PushAsync используется для перехода с текущей страницы на следующую страницу, используя объект Page в параметре, к которому мы хотим перейти.
Назад
Чтобы вернуться назад, просто используйте PopAsync.
ожидайте Navigation.PopAsync();
Навигация по данным
Для отправки данных вместе с переходом на следующую страницу мы можем использовать метод навигации PushAsync, передавая данные со страницей.
await Navigation.PushAsync(new Page2("Данные с главной страницы переданы!"));
Убедитесь, что Page принимает данные в конструкторе.
Попторутасинк
PopToRootAsync используется для возврата к корневой/первой странице стека навигации.
ожидайте навигации.PopToRootAsync();
Это вернет вас к MainPage, удалив все остальные страницы из стека навигации.
Вставить страницу перед
InsertPageBefore используется для добавления страницы в стек навигации даже после перехода.
Например, я иду из
Страница 1 → на страницу 3
Сделать наш стек навигации похожим на Page1/Page3.
Но что, если я хочу добавить еще одну страницу, скажем, страницу 2 между страницей 1 и страницей 3? Чтобы наш стек навигации выглядел как Page1/Page2/Page3.
Для этого мы будем использовать метод навигации InsertPageBefore.
Примечание. Используйте этот InsertPageBefore на странице 3 после OnAppearing.
Navigation.InsertPageBefore(новая страница2(), это);
Как мы видим, мы вставляем страницу 2 после перехода на страницу 3.
Удалить страницу
Это полезно для удаления страницы из стека навигации. Здесь, в примере, я перехожу со страницы 5 на страницу 6.
И после перехода на страницу 6 я удаляю страницу 5 из навигации, как показано ниже.
Navigation.RemovePage(эта);
Как вы можете видеть, после перехода на страницу 6 я удаляю текущую страницу 5 из навигации.
Стек навигации перед удалением страницы:
Главная страница → Страница 5 → Страница 6
Стек навигации после удаления страницы:
Главная страница → Страница 6
Удачного кодирования :D