0
我們從一個Xamarin.Forms應用開始,將會有不少頁面,頁面之間的導航將完全由應用處理 - 特別是沒有後退按鈕,這不應該是一個問題,因爲我們只是計劃在iOS上發佈。Xamarin頁面導航(再次)
用戶遇到的第一頁是登錄頁面,登錄後他們會進入主頁面。要執行此轉換,我只需撥打
LoginPage.Navigation.PushModalAsync(HomePage)
這很好。
現在如果在主頁上,他們按退出鍵,我可以打電話給PopModalAsync(),這個問題是存在的所有網頁的退出按鈕,讓用戶可以遵循這樣的路徑:
登錄 - >首頁 - >創建 - >格式 - >打印 - >註銷
,我需要立即跳轉到登錄界面。
所以在主頁上,如果用戶按下退出按鈕,我打過電話
ApplicationHomePage.Navigation.PushModalAsync(LoginPage);
,但有一個例外:
System.InvalidOperationException: Page must not already have a parent.
所以只是爲了好玩,我想我會嘗試最簡單的辦法:
LoginPage.Parent = null;
ApplicationHomePage.Navigation.PushModalAsync(LoginPage);
我永遠不會有一個後退按鈕,而iPad沒有之一,所以合作導航堆棧的新手並不重要(對嗎?)
這種導航「合法」的方法是什麼?是否會導致我目前沒有看到的一些問題?
將您的整個應用程序顯示爲模式似乎是一個壞主意。我將啓動您的HomePage(或某個佔位符)作爲您的根,並將登錄顯示爲模式。登錄後,解除模態。當他們註銷時,彈出到根,然後再次顯示模態。或者有很多其他的方法可以使用。 – Jason