Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kan jeg tilpasse navigationsprocessen i mvvmcross


Kan jeg tilpasse navigationsprocessen i mvvmcross


Ja, du kan tilpasse navigationsprocessen i MVVMCROSS. Her er en detaljeret oversigt over, hvordan man opnår dette:

Tilpasning af navigation

MVVMCROSS bruger en ViewModel-First Navigation-tilgang, hvor navigation forekommer mellem ViewModels snarere end visninger. Dette giver mulighed for platform-uafhængig navigationslogik, hvilket gør det lettere at styre komplekse navigationsstrømme over forskellige platforme som iOS og Android.

Brug af brugerdefinerede visninger

En måde at tilpasse navigationen på er ved at bruge brugerdefinerede visninger. MVVMCROSS leverer standardvisninger for hver platform, men du kan tilsidesætte disse til at implementere tilpassede navigationsmønstre såsom tabbede skærme, dialoger eller hamburgermenuer. For at gøre dette opretter du en brugerdefineret programlederklasse, der arver fra den platformspecifikke programleder (f.eks. `MvXFormSpagePresenter 'til xamarin.forms) og tilsidesætter metoder som` createNavigationPage' til at bruge dine brugerdefinerede navigationskomponenter [2] [9].

Opfangende navigationsbegivenheder

Du kan også tilpasse navigationen ved at opfange begivenheder leveret af `IMVXNAVIGATIONSERVICE '. Denne service tilbyder flere begivenheder, såsom 'Beforenavigate', 'eftermiddag', 'Beforeclose' og 'AfterClose', som giver dig mulighed for at udføre brugerdefineret logik i forskellige faser af navigationsprocessen. For eksempel kan du bruge disse begivenheder til at udføre yderligere kontroller eller opdateringer før eller efter at have navigeret mellem ViewModels [1].

Uri -navigation og dyb linking

MVVMCROSS understøtter URI -navigation, som giver dig mulighed for at definere ruter til dine ViewModels ved hjælp af monteringsattributter. Denne funktion muliggør dyb linkning, hvor specifikke dele af din app kan fås direkte fra eksterne links eller meddelelser. Du kan definere flere URI'er pr. Visningsmodel og bruge "NavigationFacades" til dynamisk at bestemme, hvilken visningsmodel du skal navigere til baseret på URI -parametrene [1].

Brugerdefineret navigationslogik

For mere komplekse scenarier kan du implementere tilpasset navigationslogik inden for dine ViewModels. For eksempel kan du bruge metoden 'Cannavigate' til at kontrollere, om en navigation er mulig, før du prøver den. Derudover kan du videregive parametre mellem ViewModels ved hjælp af metoden 'ShowViewModel' med et parameterobjekt, så du kan overføre data mellem forskellige dele af din app [1] [4].

Custom AppStart

Endelig kan du tilpasse den indledende navigation af din app ved at tilsidesætte metoden "Startup" i en brugerdefineret "AppStart" -klasse. Dette giver dig mulighed for dynamisk at beslutte, hvilken visningsmodel du skal navigere til baseret på forhold som bruger login status eller parametre, der er overført fra operativsystemet [4].

Generelt giver MVVMCROSS en fleksibel ramme til tilpasning af navigation, hvilket giver udviklere mulighed for at tilpasse den til deres specifikke applikationsbehov.

Citater:
[1] https://www.mvvmcross.com/documentation/fundamentals/navigation
)
[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
)
[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-sising-app-and-setup
[10] https://nicksnettravels.builttoroam.com/post-2019-03-24-viewmodel-to-viewModel-navigation-in-a-xamarinforms-aPplication-med-Prism and-MVVMCross-Aspx/