Xamarin页面导航(再次)

时间:2017-10-20 22:36:23

标签: xamarin xamarin.ios navigation

我们正在开始使用Xamarin.Forms应用程序,并且会有相当多的页面,页面之间的导航将完全由应用程序处理 - 特别是没有后退按钮,这不应该是问题,因为我们只打算发布iOS版。

用户遇到的第一页是登录页面,登录后会转到主页。要执行此转换,我只需调用

LoginPage.Navigation.PushModalAsync(HomePage)

那没关系。

现在,如果在主页上按下Logout按钮,我可以调用PopModalAsync(),问题是所有页面上都存在Logout按钮,因此用户可以按照这样的路径:

登录 - >首页 - >创建 - >格式 - >打印 - >注销

我需要立即跳转到登录屏幕。

所以在主页上,如果用户按下Logout按钮,我试着调用

ApplicationHomePage.Navigation.PushModalAsync(LoginPage);

但有例外:

System.InvalidOperationException: Page must not already have a parent.

所以只是为了好玩,我想我会尝试简单的解决方案:

LoginPage.Parent = null;
ApplicationHomePage.Navigation.PushModalAsync(LoginPage);

我永远不会有后退按钮,iPad也没有,所以导航堆栈的内容并不重要(对吗?)

这种导航方式是“合法的”吗?它会给我带来一些我现在没看到的问题吗?

1 个答案:

答案 0 :(得分:1)

I think you can take a look to this

您不应该将登录页面添加到NavigationStack。更改MainPage属性是一个很好的解决方案...