使用xamarin forms棱镜:
我的意图是让用户在尝试从"View3“返回导航时输入pw,并仅在pw正确的情况下才允许导航。
我有以下堆栈: MasterDetail/Navigation1/View1/View2/Navigation2/View3
当我尝试从view2导航到navigation2时,我使用模态导航。所以我没有两个导航栏。
Navigation2有一个自定义的“退出”按钮。按下后,我想导航回View2,这样我的堆栈将是:MasterDetail/导航/视图1/视图2
但是,当我尝试以下代码时,什么也没有发生:
_navigationService.GoBackAsync(useModalNavigation: false);
_navigationService.GoBackAsync(useModalNavigation: true);
_navigationService.GoBackToRootAsync();当我使用_navigationService.NavigateAsync("MasterDetail/Navigation/View1/View2", useModalNavigation:true);时,它可以工作,但随后它重新初始化了视图,这是我想要避免的。
这可能是什么原因造成的?我做错了什么吗?感谢您的任何意见!
发布于 2020-03-10 19:18:45
在这个PR中,您现在可以在Prism 7.1和更早版本中使用它:
_navigationService.NavigateAsync("../../");若要弹出导航堆栈的最后两页,请执行以下操作。
另外,你不应该在同一个堆栈中有两个导航页面,我可能会导致你的导航问题,我建议你把你的View3变成一个模态页面,并为安卓BackPress添加一个back验证:
protected override bool OnBackButtonPressed()
{
if (((MyView3ViewModelPage)BindingContext).ExitCommand != null)
{
((MyView3ViewModelPage)BindingContext).ExitCommand.Execute();
return true;
}
return base.OnBackButtonPressed();
}并创建您自己的Back Button,因为它是一个表单,您不能从它导航到其他地方,您可以完全控制如何显示该页面
https://stackoverflow.com/questions/60616175
复制相似问题