为了账号安全,请及时绑定邮箱和手机立即绑定

注销后导航到登录的 Xamarin 表单不起作用

注销后导航到登录的 Xamarin 表单不起作用

C#
素胚勾勒不出你 2022-10-23 13:35:14
因此LoginPage,我的 xamarin 表单中有一个,用户可以通过打开汉堡菜单及其HomeMenuItems在我的ListView. 当用户登录时,我导航回主页并LoginPage从导航堆栈中删除:var nextPage = new HomePage();await this.Navigation.PushAsync(nextPage);Navigation.RemovePage(this);并更改汉堡导航以添加新的 HomeMenuItems,例如 MyPage 和 Logout,例如:var md = (MasterDetailPage)Application.Current.MainPage;var menu = (MenuPage)md.Master;menu.showmychildren();它可以工作,但是当我注销时,每当我尝试导航到时,我都会将汉堡菜单更改回“注销版本”,LoginPage它会将我导航到 HomePage并且我不知道它为什么这样做。从汉堡菜单导航到 LoginPage:public void hideall(){    InitializeComponent();    ucet_stack.IsVisible = false;    ucet.IsVisible = false;    photo_sack.IsVisible = false;    photo.IsVisible = false;    menuItems = new List<HomeMenuItem>    {        new HomeMenuItem {Id = MenuItemType.Home, Title="> HomePage" },        new HomeMenuItem {Id = MenuItemType.Login, Title="> Login" },         new HomeMenuItem {Id = MenuItemType.Sponsors, Title="> Sponsors" }    };    ListViewMenu.ItemsSource = menuItems;    ListViewMenu.SelectedItem = menuItems[0];    ListViewMenu.ItemSelected += async (sender, e) =>    {        if (e.SelectedItem == null)            return;        var id = (int)((HomeMenuItem)e.SelectedItem).Id;        await RootPage.NavigateFromMenu(id);    };}我打电话给:var md = (MasterDetailPage)Application.Current.MainPage;var menu = (MenuPage)md.Master;menu.hideall();注销后。
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

根据你的描述,我给你一些建议:

1.removeInitializeComponent();无需再次调用该方法。

2.如果你想Navigating to LoginPage from hamburger menu在方法中hideall(),你可以尝试改变项目的顺序menuItems

menuItems = new List<HomeMenuItem>
 {
    new HomeMenuItem {Id = MenuItemType.Login, Title="> Login" }, 
    new HomeMenuItem {Id = MenuItemType.Home, Title="> HomePage" },    
    new HomeMenuItem {Id = MenuItemType.Sponsors, Title="> Sponsors" }
 };

将 Login 项作为数组中的第一个元素。重置ListViewMenu.ItemsSourceMasterPage,它将显示 menuItems 中的第一页。

3.通过问题和您的评论,我很困惑您的注销按钮在哪里?在主菜单中?在登录页面?

4.您在方法中导航页面,ListViewMenu.ItemSelected我认为导航到哪个页面取决于id,因此您可以在该行 添加一个断点await RootPage.NavigateFromMenu(id);,然后检查 SelectedItem 的 id 是否是MenuItemType.Login导航页面时的类型。


查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信