如何重置主详细信息页面?

时间:2016-11-07 11:27:09

标签: xamarin.forms navigation-drawer

我试图使用xamarin表单构建应用程序。 我有一个使用MasterDetail页面实现的导航抽屉。当用户按下后退按钮并再次旋转同一屏幕时,我需要重置MasterDetail的内容。在尝试这样做时我得到了以下错误:

System.InvalidOperationException:Master必须没有父级。

任何帮助都会非常感激。感谢

2 个答案:

答案 0 :(得分:0)

我尝试将新的MasterdetailPage()设置为Application.Current.MainPage时遇到了同样的问题。 MasterdetailPage.Detail中的上一页内容保留在内存中,由于MessagingCenter无法取消订阅,因此可能导致事件触发两次。

解决方案是在Global变量中保存MasterDetailPage的实例,并将此实例重用于Application.Current.MainPage。这样就不会创建新页面了。

答案 1 :(得分:0)

您可以在设置masterdetailpage实例之前清除新页面的父级。

newPage.Parent = null;
 MyMasterDetailPage.Instance.Detail = newPage;