这是GoBackToAsync
目前实施的方式。但是您可以先使用删除页面RemovePageFromStackAt
,然后再调用GoBackAsync
:
假设您在第 6 页并且想要转到第 2 页,请使用以下代码:
frame.RemovePageFromStackAt(Page5);
frame.RemovePageFromStackAt(Page4);
frame.RemovePageFromStackAt(Page3);
await frame.GoBackAsync();
因为您事先删除了第 3-5 页,所以GoBackAsync
从第 6 页跳转到第 2 页...
但请记住:这样页面将被永久删除,并且向前导航被破坏,因此应该被禁用......
唯一干净的解决方案是实现GoBackToAsync
它不仅可以GoBackAsync
多次调用...请为此在 codeplex 项目上创建一个问题。
@Vasanth 的通用代码:
while (currentView.Frame.PreviousPage != desiredPage)
{
currentView.Frame.RemovePageFromStackAt(currentView.Frame.CurrentIndex - 1);
}
更新:在您可以使用的 MyToolkit v2.3.29 中GoBackToAsync
,问题现已修复...