Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mohu přizpůsobit navigační proces v mvvmcross


Mohu přizpůsobit navigační proces v mvvmcross


Ano, můžete přizpůsobit proces navigace v MVVMCross. Zde je podrobný přehled o tom, jak toho dosáhnout:

Přizpůsobení navigace

MVVMCross používá přístup k viewModel-First navigační přístup, kde se navigace vyskytuje spíše mezi ViewModely než pohledem. To umožňuje navigační logiku nezávislou na platformě, což usnadňuje správu komplexních navigačních toků na různých platformách, jako jsou iOS a Android.

Používání moderátorů vlastního zobrazení

Jedním ze způsobů, jak přizpůsobit navigaci, je použití moderátorů vlastního zobrazení. MVVMCross poskytuje výchozí přednášející zobrazení pro každou platformu, ale můžete je přepsat a implementovat vlastní navigační vzory, jako jsou displeje, dialogy nebo menu hamburger. Chcete-li to provést, vytvoříte vlastní třídu moderátorů, která zdědí od přednášejícího specifického pro platformu (např. „MVXFormSpagePresenter` pro Xamarin.Forms) a přepínat metody, jako je„ CreateNavigationPage “, používat vlastní navigační komponenty [2] [9].

Intercepting navigační akce

Navigaci můžete také přizpůsobit zachycováním událostí poskytovaných „ImvxNavigationService`. Tato služba nabízí několik událostí, jako je `beforneravigate`,` refficvavigate`, `beforeclose` a„ afterclose “, které vám umožňují provádět vlastní logiku v různých fázích navigačního procesu. Můžete například tyto události použít k provádění dalších kontrol nebo aktualizací před nebo po navigaci mezi ViewModely [1].

Navigace Uri a hluboké propojení

MVVMCross podporuje navigaci URI, která vám umožňuje definovat trasy pro vaše ViewModels pomocí atributů sestavy. Tato funkce umožňuje hluboké propojení, kde lze přistupovat k konkrétním částem aplikace přímo z externích odkazů nebo oznámení. Můžete definovat více URI na viewModel a použít „navigační -facades“ k dynamickému určení, na který viewModel se má navigovat na základě parametrů URI [1].

Logika vlastní navigace

Pro složitější scénáře můžete implementovat vlastní navigační logiku ve svých ViewModels. Například můžete použít metodu „Cannavigate“, abyste zkontrolovali, zda je navigace možná před pokusem. Kromě toho můžete předávat parametry mezi ViewModely pomocí metody `ShowViewModel` s objektem parametru, což vám umožní přenášet data mezi různými částmi aplikace [1] [4].

Custom AppStart

Nakonec si můžete přizpůsobit počáteční navigaci vaší aplikace přepsáním metody „spuštění“ v vlastní třídě „AppStart“. To vám umožní dynamicky rozhodnout, do kterého ViewModel se můžete navigovat na základě podmínek, jako je stav přihlášení uživatele nebo parametry předávané z operačního systému [4].

Celkově MVVMCross poskytuje flexibilní rámec pro přizpůsobení navigace, což vývojářům umožňuje přizpůsobit jej jejich konkrétním potřebám aplikací.

Citace:
[1] https://www.mvvmcross.com/documentation/fundamentals/navigation
[2] https://stackoverflow.com/questions/59814748/how-to-use-sustom-navigationpage-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-shald-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-and-setup
[10] https://nicksnettravels.BuiltToroam.com/post-2019-03-24-viewModel-to-viewModel-navigation-in-xamarinforms-application-with-prism-and-sccross-assx/