Xamarin.forms Xamarin表单导航在注销时按backpress阻止

Xamarin.forms Xamarin表单导航在注销时按backpress阻止,xamarin.forms,Xamarin.forms,我正在创建一个xamarin表单应用程序。我的应用程序流是登录-->主页。主页是一个底部工具栏页面,包含三个选项。1.仪表板,2.设置,3.用户。 我在Dashboard类工具栏上添加了一个注销图标。我的问题是,每当用户单击注销时,屏幕就会导航到登录页面。但若用户按下backbutton,它将转到上一个主页面。我想禁用它 我从登录页面导航到主页是这样的 我的App.xaml.cs-我使用验证导航到主页 我的注销按钮单击Dashboard.cs private void logout_Cl

我正在创建一个xamarin表单应用程序。我的应用程序流是登录-->主页。主页是一个底部工具栏页面,包含三个选项。1.仪表板,2.设置,3.用户。 我在Dashboard类工具栏上添加了一个注销图标。我的问题是,每当用户单击注销时,屏幕就会导航到登录页面。但若用户按下backbutton,它将转到上一个主页面。我想禁用它

我从登录页面导航到主页是这样的

我的App.xaml.cs-我使用验证导航到主页

我的注销按钮单击Dashboard.cs

   private  void logout_Clicked(object sender,EventArgs e)
        {

                    Settings.ClearAllData();           
                    Navigation.PushAsync(new Login());               

        }

这里再次推送登录页面,因为登录页面已经在导航堆栈中。所以当你点击后退按钮时,它会显示登录页面; 从App.Xaml.cs页面调用

public App()
    {
        InitializeComponent(); MainPage = new LoginPage();
}

//当你按下注销按钮时

private  void logout_Clicked(object sender,EventArgs e)
    {

                Settings.ClearAllData();           
                MainPage = new LoginPage();             

    }

这里再次推送登录页面,因为登录页面已经在导航堆栈中。所以当你点击后退按钮时,它会显示登录页面; 从App.Xaml.cs页面调用

public App()
    {
        InitializeComponent(); MainPage = new LoginPage();
}

//当你按下注销按钮时

private  void logout_Clicked(object sender,EventArgs e)
    {

                Settings.ClearAllData();           
                MainPage = new LoginPage();             

    }

有两种方法,一种是如果您使用的是视图模型,那么您可以像这样简单地导航

await _navigationService.NavigateAsync("app:///NavigationPage/Splash");
第二,如果您仅使用表单,则可以使用登录页面设置主页面

MainPage = new LoginPage();

这将清除后堆栈并导航到特定页面。

有两种方法,一种是如果您使用的是视图模型,则可以像这样简单地导航

await _navigationService.NavigateAsync("app:///NavigationPage/Splash");
第二,如果您仅使用表单,则可以使用登录页面设置主页面

MainPage = new LoginPage();


这将清除后堆栈并导航到特定页面。

set MainPage=new NavigationPage(new Login());注销时,单击eventbro可在仪表板工具栏上创建注销按钮。主页是bottombarit,它将重定向并添加到新的导航堆栈中,重新排列“登录页面”的顺序,说明您为什么使用wait navigation.PopAsync();同时从登录页面导航到主页面。您应该像这样使用Navigation.PushAsync(newmainpage());bro,因为我还想阻止在loginset MainPage=new NavigationPage(new login())之后返回登录页面;注销时,单击eventbro可在仪表板工具栏上创建注销按钮。主页是bottombarit,它将重定向并添加到新的导航堆栈中,重新排列“登录页面”的顺序,说明您为什么使用wait navigation.PopAsync();同时从登录页面导航到主页面。您应该像这样使用Navigation.PushAsync(newmainpage());bro,因为我还想阻止在loginI更改后返回登录页面,但我在登录页面导航系统时出错。InvalidOperationException:PushAsync在Android上不受全局支持,请使用NavigationPage。并使用Navigation.PushAsync(new login())导航到登录页面;我已更改,但我在登录页面导航系统时出错。InvalidOperationException:在Android上不全局支持PushAsync,请使用NavigationPage。并使用Navigation.PushAsync(new login())导航到登录页面;兄弟,谢谢你的努力。我只是按照KK说的清理了那堆东西。现在一切正常。顺便说一句,谢谢你的时间布朗妮丝,我仍然不面对这种类型的问题,但它是有用的功能也许。。。清除导航堆栈@K KYes..谢谢兄弟谢谢你的努力。我只是按照KK说的清理了那堆东西。现在一切正常。顺便说一句,谢谢你的时间布朗妮丝,我仍然不面对这种类型的问题,但它是有用的功能也许。。。清除导航堆栈@K KYes..谢谢兄弟