簡體   English   中英

如何截取導航欄后退按鈕單擊的棱鏡Xamarin表單?

[英]How to intercept Navigation Bar Back Button Clicked Prism Xamarin Forms?

基本上, 這里有相同的問題,但是解決方案OnOptionsItemSelected(IMenuItem item)用於Prism MVVM,因為MainActivityOnOptionsItemSelected(IMenuItem item)永遠不會被提出。 對於我在該頁面上使用的硬件按鈕:

protected override bool OnBackButtonPressed()
{
    return !PageUtilities.CanNavigate(this, null);
}

你可以這樣

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
   e.Cancel = !PageUtilities.CanNavigate(this, null);
   base.OnBackKeyPress(e);
}

需要停止導航時取消事件

我想對此沒有直接或單一的答案。 根據您的要求,您必須提供MVVM實現。

最新的Prism庫更新具有OnNavigatedFrom方法(您將需要通過實現INavigationAware接口來覆蓋)

    public virtual void OnNavigatedFrom(NavigationParameters parameters)
    {
     // here is the place you would require to handle the Back button event, 
     // this is fired every-time, user tries to leave the view. 
    }

    public virtual void OnNavigatedTo(NavigationParameters parameters)
    {
     // fired upon view load
    }

您可能需要一個靜態(布爾值或其他值)變量來檢查用戶是否要離開視圖,並有選擇地顯示一條消息或使操作無效。

希望這可以幫助。

問候,

N包阿

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM