Taip, galite tinkinti naršymo procesą MVVMCross. Čia pateikiama išsami šio tikslo apžvalga:
Naršymo pritaikymas
„MVVMCross“ naudoja „ViewModel-First“ navigacijos metodą, kai naršymas vyksta tarp „ViewModels“, o ne rodinių. Tai leidžia nuo platformos nepriklausomos navigacijos logikos, todėl lengviau valdyti sudėtingus navigacijos srautus per įvairias platformas, tokias kaip „iOS“ ir „Android“.
Naudojant individualių peržiūros laidų vedėjus
Vienas iš būdų pritaikyti naršymą yra naudojant pasirinktinius rodiklius. „MVVMCross“ pateikia numatytuosius kiekvienos platformos laidų vedėjus, tačiau galite juos nepaisyti, kad įdiegtumėte pasirinktinius navigacijos modelius, tokius kaip skirtukiniai ekranai, dialogai ar mėsainių meniu. Norėdami tai padaryti, jūs sukuriate pasirinktinę laidų vedėjų klasę, kuri paveldi iš konkrečios platformos specifinio pranešėjo (pvz., „MVXFormSpagePresenter“ „Xamarin.Forms“) ir nepaisyti tokių metodų, kaip „createNavigationPage“ naudoti savo pasirinktinius naršymo komponentus [2] [9].
perėmimo navigacijos įvykiai
Taip pat galite tinkinti naršymą, perimdami įvykius, kuriuos pateikia „IMVXNavigationservice“. Ši paslauga siūlo kelis įvykius, tokius kaip „Beforenavigate“, „popietę“, „BeforeClose“ ir „Afterclose“, leidžiantys vykdyti pasirinktinę logiką skirtinguose navigacijos proceso etapuose. Pvz., Galite naudoti šiuos įvykius, kad atliktumėte papildomus patikrinimus ar atnaujinimus prieš naršydami tarp „ViewModels“ [1].
URI navigacija ir gilus susiejimas
„MVVMCross“ palaiko URI naršymą, kuris leidžia apibrėžti „ViewModels“ maršrutus naudojant surinkimo atributus. Ši funkcija įgalina gilų susiejimą, kai konkrečias jūsų programos dalis galima pasiekti tiesiogiai iš išorinių nuorodų ar pranešimų. Galite apibrėžti kelis URI kiekviename „ViewModel“ ir naudoti „navigationFacades“, kad dinamiškai nustatytumėte, kurį „ViewModel“ pereiti prie URI parametrų [1].
Pasirinktinė navigacijos logika
Sudėtingesniems scenarijams galite įdiegti pasirinktinę naršymo logiką „ViewModels“. Pvz., Galite naudoti metodą „Cannavigate“, kad patikrintumėte, ar prieš bandant įmanoma naršyti. Be to, galite perduoti parametrus tarp „ViewModels“ naudodami „showviewModel“ metodą su parametro objektu, leisdami perduoti duomenis iš skirtingų jūsų programos dalių [1] [4].
„Custom AppStart“
Galiausiai galite tinkinti pradinę savo programos naršymą, naudodamiesi „startup“ metodu pasirinktinėje „AppStart“ klasėje. Tai leidžia dinamiškai nuspręsti, kurį „ViewModel“ pereiti prie tokių sąlygų, kaip vartotojo prisijungimo būsena ar parametrai, perduoti iš operacinės sistemos [4].
Apskritai, „MVVMCross“ pateikia lanksčią navigacijos pritaikymo sistemą, leidžiančią kūrėjams pritaikyti jį pagal savo konkrečius programų poreikius.
Citatos:[1] https://www.mvvmcross.com/documentation/fundamentals/navigation
[2] https://stackoverflow.com/questions/59814748/how-to-use-custom--gavigationpage-with-mvvmcross-library-in-xamarin-forms
[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] https://softwareEngineering.stackexchange.com/questions/120090/who-hould-control-navigation-in-an-mvvm-Application
[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/customizing-using-app ir-setup
[10] https://nicksnettravels.builttoroam.com/post-2019-03-24-viewmodel-to-viewmodel-navigation-in-a-xamarinforms-application-with-prism ir-mvvmcross-aspx/