2017-06-21 169 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 true;return base.OnBackButtonPressed();

當您返回true時,設備會取消操作'back'。

+0

這並不能解決問題。當我按下android上的硬件backbutton時,您的解決方案就可以工作。但我有一個自定義後退按鈕。當我點擊這個自定義按鈕,並調用OnBackButtonPressed時,不執行後面的操作。兩者都擊中OnBackButtonPressed - Event,但只有硬件後退按鈕執行真正的後退動作。 – OPunktSchmidt

+0

我使用了Navigation.PopAsync()來做到這一點,如果我正確地使用了。你能發佈你的整個代碼嗎?我會嘗試在這裏模擬你的場景並獲得訣竅。 –

+0

是的,使用Navigation.PopAsync()是正確的方法並解決問題。我在原生android開發方面有一些經驗,在那裏你可以調用finish()或onBackPressed()來關閉當前頁面。在Xamarin.Forms中你必須調用Navigation.PopAsync()。 – OPunktSchmidt