棱镜101:导航
Xamarin Forms的最佳MVVM框架:)…老实说,不要相信我,相信这个人
我无法在一个博客文章中涵盖PRISM必须提供的所有内容,因此,我将集中介绍我最喜欢的功能之一: 导航! 。
导航
这就是在不使用MVVM框架的情况下处理移动应用程序中导航的感觉
这就是在PRISM中使用导航服务时的感受
它是如何工作的?
首先,您必须在使用的DI容器中注册所有页面
注意RegisterTypes()方法。
现在,如果您拥抱MVVM,您将同意在ViewModel中进行导航。 我们通过在构造函数中注入INavigationService来实现。
然后,我们可以使用_navigationService.NavigateAsync(“ PageNameHere”)将页面加载到导航堆栈中,或使用_navigationService.GoBackAsync()从堆栈中弹出页面。 就如此容易!
参数呢? 很高兴你问
为此,我们具有NavigationParameters对象,可以使用它传递参数,但请注意不要发送太多信息。
现在,我们如何在另一端接收参数?
简单,使用使用相同的NavigationParameters对象:
InavigatedAware
我们如何知道何时将ViewModel导航到,或者您将要从视图模型导航? 这是INavigatedAware发挥作用的地方
通过实现此接口,我们可以使用3种新方法
OnNavigatedFrom
在此我们可以导航到下一页之前进行自我注入。
OnNavigatedTo
当另一个页面导航到我们时,将执行此方法。 在将ViewModel推入堆栈后调用此方法。
OnNavigatingTo
最后(这是PRISM 6.3中的新增功能),它与OnNavigatedTo之间的区别在于,这是在将ViewModel推入堆栈之前调用的。