2017-06-21 3 views
0

Xamarin.Formsにコードから戻るボタンを押す方法はありますか?私はOnBackButtonPressedとSendBackButtonPressedを呼び出そうとしましたが、これは動作しません。 OnBackButtonPressedイベントは呼び出されますが、バックアクションは実行されません。Xamarin.Forms:コードから戻るボタンを押す

コールはOnBackButtonPressed:

if (_currentQuestionnaireGroup != null) 
    await RefreshDataAsync(); 
else 
{ 
    App.QuestionnaireOverviewPage.IsDirty = true; 
    this.OnBackButtonPressed(); 
} 

イベント:

protected override bool OnBackButtonPressed() 
{ 
    if (_questionnaireHandler != null) 
     App.QuestionnaireOverviewPage.IsDirty = true; 

    return true; 
} 

答えて

0

申し訳ありませんが、あなたの場合には下手な英語

ため、return base.OnBackButtonPressed();ためreturn true;を変更します。

trueを返すと、デバイスで「戻る」アクションがキャンセルされます。

+0

これは問題を解決しません。あなたの解決策は、アンドロイド上のハードウェアのバックボタンを押すと機能します。しかし、私はカスタムバックボタンを持っています。このカスタムボタンをクリックしてOnBackButtonPressedを呼び出すと、バックアクションは実行されません。両方ともOnBackButtonPressed - Eventに当たったが、ハードウェアの戻るボタンだけが実際のバックアクションを実行する。 – OPunktSchmidt

+0

これを行うにはNavigation.PopAsync()を使用してください。あなたのコード全体を投稿できますか?私はあなたのシナリオをここでシミュレートしようとし、トリックを取得します。 –

+0

はい、Navigation.PopAsync()を使用すると正しい方法で問題を解決します。ネイティブのアンドロイド開発でいくつかの経験があり、そこにはfinish()またはonBackPressed()を呼び出して現在のPageを閉じることができます。 Xamarin.Formsでは、Navigation.PopAsync()を呼び出す必要があります。 – OPunktSchmidt

関連する問題