我正在使用Windows Phone 8.1通用应用程序。到目前为止一切都很好但我在页面之间导航时遇到了困难。
第一个是MainPage。当我点击MainPage上的帖子时,它会打开一个名为PostPage的页面。 PostPage具有执行各种操作的按钮。其中一个打开一个名为commentsPage的页面。
我在评论页面中按后退按钮时的预期行为是返回到PostPage,而是返回到MainPage。
这是怎么做到的?因此,当我按下后退按钮时,它会返回到PostPage而不是MainPage。
我正在使用以下代码处理后退按钮
void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
if (Frame.CanGoBack)
{
Frame.GoBack();
//Indicate the back button press is handled so the app does not exit
e.Handled = true;
}
}
更新:这是我从MainPage导航到另一个页面的方法
this.Frame.Navigate(typeof(postPage));
答案 0 :(得分:1)
此问题是由从页面订阅BackPressed事件引起的,但后来没有取消订阅。这意味着页面实例保持活动状态,BackPressed事件由多个事件处理程序处理;在这种情况下,Post页面和Comments页面都处理事件,并且都调用Frame.GoBack()。
要解决此问题,请在离开页面时取消订阅BackPressed事件,即从OnNavigatedFrom()覆盖中取消订阅。