让我们说应用程序中的第一页是登录页面然后我需要进入主菜单屏幕,有没有办法摆脱主菜单导航栏中的后退按钮,就像摆脱了登录页面堆栈?
谢谢
答案 0 :(得分:57)
在Xamarin.Forms 1.3及更高版本中,您可以使用
NavigationPage.SetHasBackButton(this, false);
在Xaml
中,您可以添加:
<ContentPage ....NameSpaces etc....
NavigationPage.HasBackButton="False"
Title="MyPage">
</ContentPage>
答案 1 :(得分:12)
如果您将登录页面代码中的Navigation.PushAsync(page)
替换为Navigation.PushModalAsync(page)
,则可以避免使用“后退”按钮。如果以某种方式不适用
这与底层操作系统中的导航工作方式有关(至少在iOS中是这样的) - 有一个导航控制器,用于页面之间相互转换并具有前一屏幕的痕迹所以用户可以回去。
答案 2 :(得分:5)
有两种摆脱后退按钮的方法:
1)您可以使用Xamarin.Forms使用下面的代码
NavigationPage.SetHasNavigationBar (this, false);
this
代表当前页面/表单实例。
2)按照以下步骤
ContentPage
登录页面实例PushModalAsync
从“登录”页面导航到主页面,并将主页面实例提供为NavigationPage
希望这有帮助!
答案 3 :(得分:2)
通过使用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 ...
}