Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Testreszabhatom a navigációs folyamatot az MVVMCross -ban


Testreszabhatom a navigációs folyamatot az MVVMCross -ban


Igen, testreszabhatja a navigációs folyamatot az MVVMCross -ban. Itt található egy részletes áttekintés arról, hogyan lehet ezt elérni:

A navigáció testreszabása

Az MVVMCross a ViewModel-First navigációs megközelítést használja, ahol a navigáció inkább a ViewModels, nem pedig a nézetek között fordul elő. Ez lehetővé teszi a platformfüggetlen navigációs logikát, megkönnyítve a komplex navigációs áramlások kezelését a különböző platformokon, például az iOS és az Android.

Egyéni nézetű bemutatók használata

A navigáció testreszabásának egyik módja az egyéni nézetű bemutatók használata. Az MVVMCross alapértelmezett nézőműsorokat biztosít minden platformon, de ezeket felülbírálhatja az egyéni navigációs minták, például a Tabled Displays, a Dialogs vagy a hamburger menük megvalósításához. Ehhez létrehoz egy egyedi műsorvezető osztályt, amely a platformspecifikus műsorvezetőtől (például a „MvxFormSpagePresenter” a Xamarin.Forms számára örököli), és felülbírálja azokat a módszereket, mint a „CreateNavigationPage” az egyedi navigációs összetevők használatához [2] [9].

A navigációs események elfogása

A navigációt testreszabhatja az `imvxnavigationservice 'által biztosított események elfogásával is. Ez a szolgáltatás számos olyan rendezvényt kínál, mint például a „BeForenaviGate”, a `Délutáni”, a `Beforeclose” és a „utóclose”, amelyek lehetővé teszik az egyéni logika végrehajtását a navigációs folyamat különböző szakaszaiban. Például felhasználhatja ezeket az eseményeket további csekkek vagy frissítések végrehajtására a ViewModels közötti navigálás előtt vagy után [1].

URI navigáció és mély összeköttetés

Az MVVMCross támogatja az URI navigációt, amely lehetővé teszi a ViewModels útvonalainak meghatározását az összeszerelési attribútumok segítségével. Ez a szolgáltatás lehetővé teszi a mély összekapcsolást, ahol az alkalmazás egyes részein közvetlenül a külső linkekből vagy az értesítésekből érhetők el. Meghatározhat több URI -t a ViewModel -enként, és használhatja a "navigációs facade" -et, hogy dinamikusan meghatározza, hogy mely ViewModel navigáljon az URI paraméterek alapján [1].

Egyéni navigációs logika

A bonyolultabb forgatókönyvekhez az egyéni navigációs logikát megvalósíthatja a ViewModels -en belül. Például használhatja a „CannaveGate” módszert annak ellenőrzésére, hogy lehetséges -e a navigáció, mielőtt megpróbálná. Ezenkívül átadhatja a paramétereket a ViewModels között a „ShowViewModel” módszer segítségével egy paraméterobjektummal, lehetővé téve az adatok átvitelét az alkalmazás különböző részei között [1] [4].

Egyedi AppStart

Végül testreszabhatja az alkalmazás kezdeti navigációját, ha felülbírálja a „Startup” módszert egy egyedi „AppStart” osztályban. Ez lehetővé teszi, hogy dinamikusan eldöntse, melyik ViewModel -hez navigálhat olyan feltételek alapján, mint a felhasználói bejelentkezés állapota vagy az operációs rendszerből átadott paraméterek [4].

Összességében az MVVMCross rugalmas keretet biztosít a navigáció testreszabásához, lehetővé téve a fejlesztők számára, hogy alkalmazkodjanak az alkalmazási igényeikhez.

Idézetek:
[1] https://www.mvvmcross.com/documentation/fundamentals/navigation
[2] https://stackoverflow.com/questions/59814748/how-to-use-custom-navigationpage-with-mvvmcross-library-in-xamarin-porms
[3] https://stackoverflow.com/questions/43681201/custom-navigation-controller-in-an-mvvmcross-app
[4] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-thip-calc-navigation
[5] https://github.com/mvvmcross/mvvmcross/issues/4032
[6] https://softwareengineering.stackexchange.com/questions/120090/who-should-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-andsetup
[10] https://nicksNettravels.builttoroam.com/post-2019-03-24-viewmodel-to-viewmodel-navigation--xamarinforms- Application-plication-prism-and-Mvvmcross-aspx/