Skip to content

Instantly share code, notes, and snippets.

@sjehutch
Created July 28, 2020 03:33
Show Gist options
  • Save sjehutch/05b131c8eda7bc6ef3e9ca0676272c73 to your computer and use it in GitHub Desktop.
Save sjehutch/05b131c8eda7bc6ef3e9ca0676272c73 to your computer and use it in GitHub Desktop.
NavHelper MVVM Xamarin
public static class NavHelper
{
public static Page CurrentPage => Application.Current.MainPage;
private static INavigation Navigation => CurrentPage.Navigation;
public static async Task PopAsync()
{
var masterDetailPage = CurrentPage as MasterDetailPage;
if (masterDetailPage != null)
await masterDetailPage.Detail.Navigation.PopAsync();
else
await Navigation.PopAsync();
}
public static async Task PopModalAsync()
{
var masterDetailPage = CurrentPage as MasterDetailPage;
if (masterDetailPage != null)
await masterDetailPage.Detail.Navigation.PopModalAsync();
else
await Navigation.PopModalAsync();
}
public static async Task PushModalAsync(Page page)
{
var masterDetailPage = CurrentPage as MasterDetailPage;
if (masterDetailPage != null)
await masterDetailPage.Detail.Navigation.PushModalAsync(page);
else
await Navigation.PushModalAsync(page);
}
public static async Task PushAsync(Page page)
{
var masterDetailPage = CurrentPage as MasterDetailPage;
if (masterDetailPage != null)
await masterDetailPage.Detail.Navigation.PushAsync(page);
else
await Navigation.PushAsync(page);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment