Jā, jūs varat pielāgot navigācijas procesu MVVMCross. Šeit ir detalizēts pārskats par to, kā to sasniegt:
Navigācijas pielāgošana
MVVMCROSS izmanto skatuModeļa pirmās navigācijas pieeju, kur navigācija notiek starp ViewModels, nevis skatiem. Tas ļauj iegūt no platformas neatkarīgu navigācijas loģiku, padarot vieglāku sarežģītu navigācijas plūsmu pārvaldību dažādās platformās, piemēram, iOS un Android.
Izmantojot pielāgotu skata vadītājus
Viens veids, kā pielāgot navigāciju, ir pielāgotu skata vadītāju izmantošana. MVVMCROSS nodrošina noklusējuma skata vadītājus katrai platformai, taču jūs varat tos ignorēt, lai ieviestu pielāgotus navigācijas modeļus, piemēram, tabulas displejus, dialogus vai hamburgera izvēlnes. Lai to izdarītu, jūs izveidojat pielāgotu vadītāju klasi, kas manto no platformas specifiskā vadītāja (piemēram, Xamarin.Forms `MVXFormSpagePreSenter` par Xamarin.Forms) un ignorēt tādas metodes kā" CreateNavigationPage ", lai izmantotu jūsu pielāgotās navigācijas komponentus [2] [9].
pārtvert navigācijas notikumus
Jūs varat arī pielāgot navigāciju, pārtverot notikumus, ko nodrošina “imvxnavigationService”. Šis pakalpojums piedāvā vairākus pasākumus, piemēram, `beforenavigate`,` pēcpusdienā`, `BeforeClose` un` Afterclose`, kas ļauj veikt pielāgotu loģiku dažādos navigācijas procesa posmos. Piemēram, jūs varat izmantot šos notikumus, lai veiktu papildu pārbaudes vai atjauninājumus pirms vai pēc navigācijas starp ViewModels [1].
URI navigācija un dziļa sasaiste
MVVMCROSS atbalsta URI navigāciju, kas ļauj definēt jūsu ViewModels maršrutus, izmantojot montāžas atribūtus. Šī funkcija ļauj dziļi sasaistīt, kur noteiktām jūsu lietotnes daļām var piekļūt tieši no ārējām saitēm vai paziņojumiem. Jūs varat definēt vairākus URI katram ViewModel un izmantot "NavigationFacades", lai dinamiski noteiktu, kurš skatsModel pāriet uz URI parametriem [1].
Pielāgota navigācijas loģika
Sarežģītākiem scenārijiem varat ieviest pielāgotu navigācijas loģiku savos ViewModels. Piemēram, pirms mēģinājuma mēģināt jūs varētu izmantot metodi “Cannavigate”, lai pārbaudītu, vai navigācija ir iespējama. Turklāt jūs varat nodot parametrus starp ViewModels, izmantojot metodi “ShowViewModel” ar parametra objektu, ļaujot pārsūtīt datus starp dažādām jūsu lietotnes daļām [1] [4].
Pielāgota appStart
Visbeidzot, jūs varat pielāgot savas lietotnes sākotnējo navigāciju, ignorējot “starta” metodi pielāgotā klasē. Tas ļauj dinamiski izlemt, kurā ViewModel pāriet, pamatojoties uz tādiem apstākļiem kā lietotāja pieteikšanās statuss vai parametri, kas nodoti no operētājsistēmas [4].
Kopumā MVVMCROSS nodrošina elastīgu sistēmu navigācijas pielāgošanai, ļaujot izstrādātājiem to pielāgot savām īpašajām lietojumprogrammas vajadzībām.
Atsauces:[1] https://www.mvvmcross.com/documentation/fundamentals/navigation
[2] https://stackoverflow.com/questions/59814748/how-to-use-use-custom-navigationPage-wit
[3] https://stackoverflow.com/questions/43681201/custom-navigation-controller-in-an-mvvmcross-app
[4] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-tip-calc-navigation
[5] https://github.com/mvvmcross/mvvmcross/issues/4032
[6.]
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter
[9] https://www.mvvmcross.com/documentation/advanced/customing-using-app-and-setup
.