Ric*_*chC 8 c# windows-phone-8.1 win-universal-app
这是我的页面导航的场景:
MainPage(MP)<==>位置(L)<==> AddLocation(AL)
我不希望用户在按下手机上的后退按钮时转到AddLocation.
如果他们是MP并且他们回击,他们应该退出应用程序.
如果他们去MP-> L并回击,他们应该去MainPage.
如果他们进入MP-> L-> AL并回击,他们应该去Locations.
如果他们进入MP-> L-> AL-> L并回击,他们应该转到MainPage而不是回到AddLocations.
没错,我在Common文件夹中有标准的nav帮助器,然后我将此代码添加到Locations页面以实现此目的:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
this.navigationHelper.OnNavigatedTo(e);
var bs = Frame.BackStack.Where(b => b.SourcePageType.Name == "MainPage").FirstOrDefault();
if (bs!= null)
{
Frame.BackStack.Clear();
Frame.BackStack.Add(bs);
}
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是一个可怕的黑客攻击,我确信有一些支持/设计的方法可以做到这一点,我不知道.我是WinRT和Xaml的新手.
你的问题是went MP->L->AL->L and hit back, they should go to MainPage and not back to AddLocations不是?
解决方案是:当您添加完位置后,您应该从“添加位置”页面转到“位置”页面。
但你不应该用来Frame.Navigate(typeof(LocationPage));这样做。
您应该使用Frame.GoBack();,因此 AddLocation 页面将从 BackStack auto 中删除。
| 归档时间: |
|
| 查看次数: |
3419 次 |
| 最近记录: |