XAML in Xamarin.Forms 基礎篇 電子書

特別說明

2017/01/08

Xamarin FAQ 1-007 : 如何清除導航堆疊 (Navigation Stack)

問題

根據當時應用程式的操作流程,會需要轉跳到某個頁面,此時,螢幕上不會有回上一頁的導航按鈕出現,必且,手機的實體回上一頁按鍵,當您按下之後,這個應用程式就會直些回到手機桌面,並不會跳到之前來的頁面。最經典的使用案例那就是,使用者可以在應用程式的任何地方,點選 登出 功能選項,接著,應用程式就會跳到 登入 頁面上,此時,這個頁面就會成為這個應用程式的首頁,因為導航堆疊已經被清空了,所以,當按下實體按鍵的回上一頁按鈕,此時,應用程式也就回到背景模式,手機桌面也就出現了。

解答

想要解決這個問題,可以使用底下程式碼
        public YourConstructor(INavigationService navigationService)
        {
            _navigationService = navigationService;
            登出Command = new DelegateCommand(() =>
            {
                await _navigationService.NavigateAsync("xf:///MDPage/NaviPage/LoginPage");
            });
        }|
在這個範例程式碼中,當您需要導航到 登入 頁面的時候 (LoginPage),請使用絕對路徑的 URI 來表示,而不要使用相對路徑,例如:await _navigationService.NavigateAsync("LoginPage");,如此,當切換到 登入 頁面之後,應用程式的導航堆疊也就清空了。

沒有留言:

張貼留言