假设应用程序的第一页是登录页面,然后我需要做主菜单屏幕,有没有办法摆脱主菜单导航栏中的后退按钮,比如摆脱登录页面堆栈?
谢谢你
在 Xamarin.Forms 1.3 和更高版本中,您可以使用
NavigationPage.SetHasBackButton(this, false);
在Xaml
您可以添加:
<ContentPage ....NameSpaces etc....
NavigationPage.HasBackButton="False"
Title="MyPage">
</ContentPage>
如果您将登录页面代码中的替换Navigation.PushAsync(page)
为 ,则可以避免使用“后退”按钮。Navigation.PushModalAsync(page)
如果这不适用,请发布一些代码
这与导航在底层操作系统中的工作方式有关(至少在 iOS 中是这样) - 有一个导航控制器用于在页面之间相互转换并跟踪前一个屏幕,以便用户可以返回。
有 2 种方法可以摆脱后退按钮:
1)您可以使用以下代码使用 Xamarin.Forms 从 Xaml 中删除导航栏
NavigationPage.SetHasNavigationBar (this, false);
wherethis
代表当前页面/表单实例。
2)按照下面提到的步骤
ContentPage
使用登录页面的普通实例加载应用程序时导航到登录页面PushModalAsync
并提供主页实例为NavigationPage
希望这可以帮助!
通过使用 CustomRenderer,您可以在自定义视图控制器的 ViewWillAppear 中调用此函数
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
this.ParentViewController.NavigationItem.SetHidesBackButton (true, false);
//remember to use ParentViewController to reference to the NavigationViewController (if your contentPage is direct under a navigation controller. I don't know why but Xamarin must have a bug with SetHidesBackButton. If you call with this.NavigationItem.SetHidesBackButton(...), it should not work.
... other implements here ...
}