Prism 源碼解讀7-導航
- 2020 年 4 月 6 日
- 筆記
介紹
Prism提供了一個非常強大的功能導航,導航的意思就是指定對應的View顯示。這個導航的強大之處有:
- 可以設置導航前後的動作
- 可以指定View實例的生命周期,可以是否導航到新的View實例
- 提供了確認導航接口。
- 導航前後均有相應的事件通知
- 提供了回退前進的導航功能
導航
直接看代碼
可以看到直接通過RequstNavigate來請求,參數是View的TypeName
轉到了Region.RequestNavigate里
這邊出現了NavigationService,幾乎所有的導航功能都是在這個服務中實現的,
這邊將導航的一些信息封裝成NavigationContext,
在這出現了第一個功能,實現ICon’firm’NavigationRequest接口,確認導航。
最後來到了最重要的函數ExecuteNavigation
這個函數每一行都很重要,每一行都是一個功能。
調用OnNavigateFrom,可以在導航前做一些操作
獲取導航內容,先從Region的View中找,沒找到就到容器中找,然後添加到Region的View。
激活界面
創建條目,保存條目,主要用來進行前進後退
觸發導航完成事件。
整個導航功能的順序:
總結
Prism提供的這個導航功能非常強大,但是代碼卻不複雜,通過一些簡單的接口,實現了非常強大的功能。