Управление стеком модальностей в формах Xamarin с помощью FreshMvvm

#c# #xamarin #xamarin.forms #freshmvvm

#c# #xamarin #xamarin.forms #freshmvvm

Вопрос:

Используя

  • FreshMvvm
  • Xamarin Forms 4.4 на iOS и Android

Есть много вопросов о том, как очистить модальный стек в формах Xamarin, и из тех, которые у меня есть:

 var numModals = Application.Current.MainPage.Navigation.ModalStack.Count;

// To prevent the page from being temporarily visible as each Modal above it is Popped, set the Opacity to 0
for (int currModal = 0; currModal < numModals; currModal  )
{
    NavigationPage navigationPage = Application.Current.MainPage.Navigation.ModalStack[(numModals - currModal) - 1] as NavigationPage;
    navigationPage.Opacity = 0;
}

for (int currModal = 0; currModal < numModals; currModal  )
{
    await this.CoreMethods.PopPageModel(null, true, false);
}
  

Хотя это работает, это добавляет зависимость от Application.Current моей ViewModel. Поскольку мы используем FreshMvvm, я ищу подход, который лучше работает с этим и удаляет мое приложение.Текущий код.

Пользовательские службы навигации с помощью IFreshNavigationService — единственное, что бросается в глаза, однако примеры, которые я вижу для них, либо

  1. Навигация по странице входа и граница навигации по главной странице
  2. Представление с вкладками

Примером потока страниц, который у меня есть, является

  1. Домашняя страница (немодальная)
  2. ValueHistoryPage (немодальный)
  3. ConfigureValueDevicePage (модальный)
  4. Выберите Valuedevicemodelpage (модальный)
  5. ConnectValueDevicePage (модальный)

На этом этапе пользователь может решить, что он настроил свое ValueDevice, но пока не хочет его использовать, поэтому вернитесь к ValueHistoryPage, что будет означать закрытие всех модальностей, так что ValueHistoryPage теперь будет самой верхней, или запустить новый набор навигации, который переходит к CaptureFromValueDevicePage (модальный) И закрывает предыдущий набор из трех модальностей (ConfigureValueDevicePage, Выберите Valuedevicemodelpage и подключите Valuedevicepage )

Будет ли первый набор модальностей находиться в одном пользовательском IFreshNavigationService и, возможно, будет ли CaptureFromValueDevicePage в отдельном IFreshNavigationService ?

Существуют ли какие-либо примеры IFreshNavigationService, которые не связаны с представлениями с вкладками или входом в систему?