[英]How to intercept Navigation Bar Back Button Clicked Prism Xamarin Forms?
基本上, 這里有相同的問題,但是解決方案OnOptionsItemSelected(IMenuItem item)
用於Prism MVVM,因為MainActivity
的OnOptionsItemSelected(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.