当用户从侧面菜单中点击“退出”时,我试图导航到启动屏幕,因此无法导航返回上一页。 PushModalAsync适应这一点,但从我的MasterDetailPage做它似乎不起作用。
Profile.cs
public partial class Profile : MasterDetailPage
{
public List<MasterPageItem> menuList { get; set; }
public Profile()
{
InitializeComponent();
this.lblMessage.Text = Settings.Name + " " + Settings.Surname;
menuList = new List<MasterPageItem>();
var page1 = new MasterPageItem() { Title = "Home", Icon = "home.png", TargetType = typeof(Page1) };
var page2 = new MasterPageItem() { Title = "Cards", Icon = "card.png", TargetType = typeof(Cards) };
var page3 = new MasterPageItem() { Title = "Transactions", Icon = "settings.png", TargetType = typeof(Transactions) };
var page5 = new MasterPageItem() { Title = "Log out", Icon = "signout.png", TargetType = typeof(MainPage) };
menuList.Add(page1);
menuList.Add(page2);
menuList.Add(page3);
menuList.Add(page5);
navigationDrawerList.ItemsSource = menuList;
Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(Page1)));
}
private void OnMenuItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = (MasterPageItem)e.SelectedItem;
Type page = item.TargetType;
Detail = new NavigationPage((Page)Activator.CreateInstance(page));
IsPresented = false;
}
}
我尝试过的内容: 我尝试将其分配给变量:
var goToMainPage = Navigation.PushModalAsync(new MainPage());
然后将其添加到我想要的位置:
var page5 = new MasterPageItem() { Title = "Log out", Icon = "signout.png", TargetType = typeof(goToMainPage) };
- 但这并没有认出我的变量。
有没有其他方法可以完成这项工作?感谢。
答案 0 :(得分:1)
我认为你必须改变你的设计。
按&#34;退出&#34;我想你必须去&#34;登录&#34;页面(也许是您的&#34; MainPage()&#34; ...我不知道)和这个&#34;登录&#34;页面应该在你的&#34; NavigationStack&#34;。
之外因此,如果您的方案是
你应该在App.cs中做一些像瘦的事情
Application.Current.MainPage = new PageA();
按下&#34;登录按钮&#34;在PageA()上你应该改变你的主页
Application.Current.MainPage = new PageB();
您只能将导航用于&#34;详细信息&#34;页面...所以当你按下&#34;退出&#34;你不应该推或弹,但你应该改变你的主页
Application.Current.MainPage = new PageA(); // Come back to Login