从导航日志中删除2个条目

时间:2014-01-06 10:57:26

标签: wpf xaml windows-phone-8

在我的windows phone 8应用中,我必须在导航到不同页面之前检查用户是否已登录。如果用户未登录,我将用户导航到用户选择从Facebook或Twitter登录或取消的Login.xaml

现在,当用户成功登录时,我将用户导航到适当的页面。我的问题是如何删除那些潜在的2页(login.xaml和facebook / twitter登录)?

NavigationService.BackStack is IEnumerable :(

有没有人有解决方法?

1 个答案:

答案 0 :(得分:1)

如果与使用WPF NavigationService相同,那么您可以在导航到新页面后使用RemoveBackEntry


更新

如果您使用的代码如

if (!user.IsLoggedIn)
{
  NavigationService.Navigate(new Login());
}

然后你可以在任何人有机会看到它们之前删除后面的条目

if (!user.IsLoggedIn)
{
  NavigationService.Navigate(new Login());
  //Hide back entry
  NavigationService.RemoveBackEntry();
}

但是,如果您无法执行此操作,例如当您在后面的条目中最终使用Facebook / Twitter网址时,请订阅Navigated事件,然后将其删除

public Login()
{
   NavigationService.Navigated += HideEntriesOnNavigated;
}

void HideEntriesOnNavigated(object sender, NavigationEventArgs e)
{
  if (IsFacebookLogin(e.Url)
    || IsTwitterLogin(e.Url)
    || IsAppLoginPage(e.Url))
  {
     NavigationService.RemoveBackEntry();
  }
}