在我的windows phone 8
应用中,我必须在导航到不同页面之前检查用户是否已登录。如果用户未登录,我将用户导航到用户选择从Facebook或Twitter登录或取消的Login.xaml
。
现在,当用户成功登录时,我将用户导航到适当的页面。我的问题是如何删除那些潜在的2页(login.xaml和facebook / twitter登录)?
NavigationService.BackStack is IEnumerable :(
有没有人有解决方法?
答案 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();
}
}