首页 > 解决方案 > Xamarin 表单 - 导航到另一个页面

问题描述

我正在使用适用于 Android 和 IOs 应用程序的 Xamarin Forms。

我有两个页面,登录页面和主页。我要实现的逻辑是:检查用户是否登录,如果没有打开“登录”页面,如果是,则转到“主”页面。

我试图使用 NavigationPage 和 Navigation.PushAsync 方法来实现这一点。但是方法在没有 NavigationPage 的情况下不起作用,并且 NavigatetionPage 在顶部呈现额外的导航栏。

现在我正在使用:

应用程序.xaml.cs

    public App()
    {
        InitializeComponent();
        
        if (!isUserLoggedIn)
        {
            MainPage = new LoginPage();
        }
        else
        {
            MainPage = new MainPage();
        }
    }

登录页面.xaml.cs

//When user authenticated
App.Current.MainPage = new MainPage();

这段代码运行良好,但我不确定这是否是好的和正确的解决方案。

有没有更好的方法来实现相同的逻辑?

标签: .netxamarin.formsxamarin.androidxamarin.ios

解决方案


您只需要在 LoginPage 和 MainPage 中隐藏 Navigationbar。

public App()
{
    InitializeComponent();
    
    if (!isUserLoggedIn)
    {
        MainPage =  new NavigationPage(new LoginPage());
    }
    else
    {
        MainPage = new NavigationPage(MainPage());
    }
}

登录页面.xaml.cs:

public LoginPage()
    {
        InitializeComponent();
        NavigationPage.SetHasNavigationBar(this, false);
    }

//When user authenticated
App.Current.MainPage = new NavigationPage(MainPage());

MainPage.xaml.cs:

public MainPage()
    {
        InitializeComponent();
        NavigationPage.SetHasNavigationBar(this, false);
    }

推荐阅读