Xamarin.Forms + Prism,整理页面导航跳转流程

3个Page,Page1 -> Page2 -> Page3 -> Page2 -> Page1。

PageViewModel实现接口:IPageLifecycleAware、INavigatedAware、IDestructible

 

接口说明:

IPageLifecycleAware:Page Lifecycle | Prism

INavigatedAware:Passing parameters - INavigationAware | Prism

IDestructible:Creating Your First Prism App - Anatomy of a Prism Application | Prism 

 

断点位置:

Page:

  构造函数

PageViewModel:

  构造函数、

  OnAppearing方法(IPageLifecycleAware接口)、OnDisappearing方法(IPageLifecycleAware接口)、

  OnNavigatedTo方法(INavigatedAware接口)、OnNavigatedFrom方法(INavigatedAware接口)、

  Destroy方法(IDestructible接口)

 

断点进入顺序:

    1、Page1 - 构造函数

    2、Page1ViewModel - 构造函数

    3、Page1ViewModel - OnNavigatedTo

    4、Page1ViewModel - OnAppearing

跳转到Page2

    5、Page2 - 构造函数

    6、Page2ViewModel - 构造函数

    7、Page1ViewModel - OnDisappearing

    8、Page2ViewModel - OnAppearing

    9、Page1ViewModel - OnNavigatedFrom

  10、Page2ViewModel - OnNavigatedTo

跳转到Page3

  11、Page3 - 构造函数

  12、Page3ViewModel - 构造函数

  13、Page2ViewModel - OnDisappearing

  14、Page3ViewModel - OnAppearing

  15、Page2ViewModel - OnNavigatedFrom

  16、Page3ViewModel - OnNavigatedTo

返回到Page2

  17、Page3ViewModel - OnDisappearing

  18、Page3ViewModel - OnNavigatedFrom

  19、Page2ViewModel - OnNavigatedTo

  20、Page3ViewModel - Destroy

  21、Page2ViewModel - OnAppearing

返回到Page1

  22、Page2ViewModel - OnDisappearing

  23、Page2ViewModel - OnNavigatedFrom

  24、Page1ViewModel - OnNavigatedTo

  25、Page2ViewModel - Destroy

  26、Page1ViewModel - OnAppearing

使用硬件返回按钮,返回到桌面

  27、Page1ViewModel - OnDisappearing

 

Page1没有进入Destroy方法,可以通过重写OnBackButtonPressed()方法,来进行释放资源等操作。

posted @ 2019-01-31 17:35  茄子好吃  阅读(1196)  评论(0编辑  收藏  举报