我正在开发Windows Phone 8.1通用应用程序。到目前为止,一切都很好,但我在页面之间的导航方面遇到了困难
第一个是主页。当我点击主页上的帖子时,它会打开一个名为PostPage的页面。PostPage具有执行各种操作的按钮。其中一个打开了一个名为commentsPage的页面。当我按下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;
}
}
更新:这是我从主页导航到另一个页面的方式this.Frame.Navigate(typeof(postPage));
此问题是由于从页面订阅了BackPressed事件,但没有取消订阅而导致的。这意味着页面实例保持活动状态,并且BackPressed活动由多个事件处理程序处理;在这种情况下,Post页面和Comments页面都在处理事件,并且都在调用Frame.GoBack().
要解决此问题,请在离开页面时取消订阅BackPressed事件,即取消订阅OnNavigatedFrom()覆盖。