在Windows Phone 8.1 RT中导航

时间:2015-03-21 06:52:13

标签: navigation windows-phone-8.1

我正在使用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));

1 个答案:

答案 0 :(得分:1)

此问题是由从页面订阅BackPressed事件引起的,但后来没有取消订阅。这意味着页面实例保持活动状态,BackPressed事件由多个事件处理程序处理;在这种情况下,Post页面和Comments页面都处理事件,并且都调用Frame.GoBack()。

要解决此问题,请在离开页面时取消订阅BackPressed事件,即从OnNavigatedFrom()覆盖中取消订阅。