I have the following method in an Xamarin.Forms.ContentPage wired to a button click event
public class LoginPage : ContentPage
{
    private Button _loginButton = null;
    private Entry _PasswordInput = null;
    private Entry _UsernameInput = null;
    public LoginPage()
    {
        _UsernameInput = new Entry { Placeholder = "Username" };
        _PasswordInput = new Entry { Placeholder = "Password", IsPassword = true };
        _loginButton = new Button
        {
            Text = "Login",
            BorderRadius = 5
        }
        _loginButton.Clicked += LogIn;
        Content = new StackLayout 
        {
            VerticalOptions = LayoutOptions.Center,
            Children = 
            {
                 _UsernameInput, _PasswordInput, _loginButton, 
            },
            Spacing = 15
        };
    }
    public async void LogIn(object sender, EventArgs eventsArgs)
    {
        //do authenticate stuff here
        SSO.MyAuthentication client = new SSO.MyAuthentication();
        bool isAuthenticated = client.Authenticate(_UsernameInput.Text, _PasswordInput.Text);
        if(isAuthenticated)
        {
             //Push home page to top of navigation stack
             Navigation.PushAsync(new HomePage());
        }
    }
}
On the following line of code Navigation.PushAsync(new HomePage());, I am getting the following exception while debugging:
PushAsync is not supported globally on Android, please use a NavigationPage
How do I resolve this issue using a Xamarin.Forms.NavigationPage object?
You are calling "PushAsync":
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private void btnCourseList_Clicked(object sender, EventArgs e)
    {
        Navigation.PushAsync(new PageB());
    }
}
but you did not start the NavigationPage, which normally is done in the App.cs class, or at least it should be started before any call to "PushAsync":
MainPage = new NavigationPage(new PageA());
                        In app.xaml.cs file,
Replace
 MainPage = new <namespace>.MainPage();
With
 MainPage = new NavigationPage(new <namespace>.MainPage());
Then Use
 await Navigation.PushAsync(new NavigationPage(new MainPage2()));
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With