これまで、Pyshical BackButtonを押した後、私のアプリケーションをMainPageに戻したいと思っていました。私はすでにそれをやっているが、問題は私がMainPageにいて、Pyhsical Buttonを押しているときで、どこにも行かないAppを閉じるのではないということだ。 2番目の問題は、ページスタックが2(MainPage> News> NewsDetail)の場合、MainPage(DetailNews> MainPage)に直接移動する場合です。私がしたいことは、previouse Page(DetailNews> News> MainPage>)にポップすることです。ここでオーバライドのための私の完全なコードは、戻るボタンCant戻るXamarinフォームでBackButtonオーバーライドメソッドを作成した後にアプリケーションを終了する
public bool DoBack
{
get
{
MasterDetailPage mainPage = App.Current.MainPage as MasterDetailPage;
if (mainPage != null)
{
bool canDoBack = mainPage.Detail.Navigation.NavigationStack.Count > 1 || mainPage.IsPresented;
// we are on a top level page and the Master menu is NOT showing
if (!canDoBack)
{
// don't exit the app just show Dashboard
//mainPage.IsPresented = true;
Type page = typeof(DrawerPage);
mainPage.Detail = new NavigationPage((Page)Activator.CreateInstance(page));
return false;
}
else
{
return true;
}
}
return true;
}
}
私は何を追加するか、それを行うためにここに変更する必要がありますコード、任意の暗示のですか?
をOnBackButtonPressedソリューションイムオーバーライドを発見しましたnullなので、else条件を返すことはありません。だから、else条件はすでに正しいです。これはtrueを返さなければなりません。なぜMainPageの私がこの条件を返すことはないのでしょうか?質問 –
私はこれに答えることができません。これはちょっとしたコードです。デバッガを使用し、App.Current.MainPageやその他の部分にあるものを調べることをお勧めします。 –
私のコードをデバッグしていますが、NavigationStack.Countは常にNavigationStackが1のMainPageで、NavigationStackが1 t0oのNewsにナビゲートしているときに問題があります。何が起こるの?なぜNavigationStackは常に1の提案ですか? –