2016-11-07 79 views
1

我試圖用xamarin表單構建一個應用程序。 我有一個使用MasterDetail頁面實現的導航抽屜。當用戶按下後退按鈕並再次修改相同的屏幕時,我需要重新設置MasterDetail的內容。雖然試圖做到這一點我得到以下錯誤:如何重置主詳細信息頁面?

System.InvalidOperationException:主控制器不能有一個父。

任何幫助將非常感激。謝謝

+0

當你說:「重置內容」是什麼意思?當它應該這樣做?你的意思是硬件後退按鈕?請提供更多細節。 –

+0

我需要在主詳細信息頁面中重新初始化頁面。我需要這樣做,當用戶按硬件返回按鈕並重新訪問頁面 – user3165999

+0

據我所知,Xamarin.Forms不提供一個掛鉤知道用戶何時按下硬件。但我認爲這不是你需要的。當你重新訪問頁面時,它會每次都進行初始化,所以我沒有看到問題。但是如果你想做一些改變,你可以使用MVVM框架之一(我使用Prism),並在方法中做一些代碼,當你瀏覽你的頁面時會調用這些代碼。 關於你的例外,我不知道它是什麼意思。請添加一些代碼。 –

回答

0

我跑到這個相同的問題,以及試圖設置一個新的MasterdetailPage()作爲Application.Current.MainPage。 MasterdetailPage.Detail內的上一頁頁面內容保留在內存中,由於MessagingCenter無法取消訂閱,這可能導致事件觸發兩次。

解決方案是將一個MasterDetailPage的實例保存在Global變量中,並將該實例重新用於Application.Current.MainPage。這樣就不會創建新的頁面。

相關問題