Привет, ребята! В этом блоге мы изучим основы навигации по .Net Maui/Xamarin Forms.

Если вы хотите изучить навигацию в оболочке, вы можете посетить мой блог о навигации в оболочке, нажав здесь.

Как показано выше, в выходных данных мы собираемся продемонстрировать некоторые из самых простых примеров навигации.

  1. Простая навигация
  2. Назад
  3. Навигация с данными
  4. Попторутасинк
  5. Вставить страницу перед
  6. Удалить страницу

Важно:

Убедитесь, что вы обернули 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