使用
- 新鲜MVVM
- iOS 和 Android 上的 Xamarin Forms 4.4
关于如何在 Xamarin Forms 中清理模态堆栈以及我的问题有很多问题:
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,我正在寻找一种可以更好地使用它并删除我的 Application.Curent 代码的方法。
带有 IFreshNavigationService 的自定义导航服务是唯一让我兴奋的东西,但是我看到的例子是
- Login Page 导航和 MainPage 导航边界
- 选项卡式视图
我有一个示例页面流是
- 主页(非模态)
- ValueHistoryPage(非模态)
- 配置值设备页面(模式)
- 选择ValueDeviceModelPage(模态)
- ConnectValueDevicePage(模式)
此时,用户可以决定他们已经配置了他们的 ValueDevice 但还不想使用它,所以返回 ValueHistoryPage 这意味着关闭所有模式,因此 ValueHistoryPage 现在是 TopMost 或开始一个新的导航集去CaptureFromValueDevicePage ( modal ) 并关闭前一组三个 Modals(ConfigureValueDevicePage、ChooseValueDeviceModelPage 和 ConnectValueDevicePage)
第一组 Modals 是否会在一个自定义的 IFreshNavigationService 中,并且可能在单独的 IFreshNavigationService 中的 CaptureFromValueDevicePage 中?
是否有与选项卡式视图或登录无关的 IFreshNavigationService 示例?