积极答复者
Windows Phone 8.1 应用间导航,回退事件

问题
-
有三个页面A,B,C.
三个页面都重写了回退按键事件,奇怪的是,A-->B-->C,然后在C页面按下回退按键,结果回退到了A页面。
进过调试发现,A,B,C页面加入了回退栈的,使用的是 this.navigationHelper.OnNavigatedTo(e);
但在C页面按下回退按键按键时,触发了B页面的protected async override void OnNavigatedTo(NavigationEventArgs e)事件,不只如此,还触发了A页面的protected async override void OnNavigatedTo(NavigationEventArgs e)事件,等执行完后,显示的页面是A页面
这究竟怎么回事,哪里漏了吗?
A,B,C页面都是这样的,其它就是一些业务逻辑代码了:
protected async override void OnNavigatedTo(NavigationEventArgs e) { this.navigationHelper.OnNavigatedTo(e); HardwareButtons.BackPressed += HardwareButtons_BackPressed; }
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { if (Frame.CanGoBack) { Frame.GoBack(); } e.Handled = true; }
============================================================
我发现使用的基本页中的NavigationHelper实例的OnNavigatedTo方法,不需要额外实现重写返回事件。
- 已编辑 烧点饭 2015年1月6日 0:58 补充
答案
-
NavigationHelper 類裡就有幫你處理好退後鍵的事情, 不需要再額外加掛事件.
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
- 已标记为答案 Franklin ChenMicrosoft employee, Moderator 2015年1月22日 11:48
全部回复
-
NavigationHelper 類裡就有幫你處理好退後鍵的事情, 不需要再額外加掛事件.
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
- 已标记为答案 Franklin ChenMicrosoft employee, Moderator 2015年1月22日 11:48