2017-10-23 45 views
0

私はユーザーログインがあるアプリケーションを持っています。今私は彼がログアウトボタンを押した後にそのユーザーがメニューに戻ることができないようにしたい。xamarinフォームのOnBackButtonPressedメソッドでアプリを終了させる

これは、ログアウトボタンがクリックされた後、だから、ログインページにユーザーをプッシュ私のログアウト方法

public async void OnLogoutButtonClicked(object sender, EventArgs e) 
     { 
      App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID); 
      await Navigation.PushAsync(new LoginPage()); 
     } 

です。 私は、ログインページ

protected override bool OnBackButtonPressed() 
    { 

     return false; 
    } 

でこれを使用して[戻る]ボタンを無効にすることができるよしかし、それは私のアプリではなく、私は戻るボタンを押したときに私のアプリは、アプリケーションを閉じる必要があることを望ん、応答しない感じさせます。私はこの

 protected override bool OnBackButtonPressed() 
     { 

      return exit(); 
      // 
      // exit() 
     } 

を試してみましたが、それは、私はそれを動作させるために何をすべき、ブール値を返します ?

答えて

2

ユーザーがログアウトすると、通常、既存のナビゲーションスタック上に新しいページをプッシュしたくありません。現在のナビゲーションスタックはもはや適用されないので、UserTokenCacheのクリア方法と同じように、破棄する必要があります。

だからあなたのlogoutメソッドは、より多くのようにする必要があります。

public async void OnLogoutButtonClicked(object sender, EventArgs e) 
{ 
    App.AuthenticationClient.UserTokenCache.Clear(Constants.ApplicationID); 
    Application.Current.MainPage = new LoginPage(); 
} 

基本的には、アプリが起動して最初のLoginPageをユーザに提示するような感覚で、新しいLoginPageを作成し、新しいメインページを設定します。

これを行うと、そのナビゲーションスタック全体がなくなったため、戻るボタンはメニューに戻ることができません。

+0

ありがとうございます –

関連する問題