システムやデバイスが提供する[戻る]ボタンが押されたときに、前画面にきちんと遷移するようにするにはOnBackButtonPressedメソッドを使用する。
対象:Visual Studio 2015以降
Xamarin.Formsで画面遷移を実装するとき、システムが提供している[戻る]ボタンに対応しなければならない場合もある。その方法を解説する。
対応が必要な場合(後述)は、Pageクラス(Xamarin.Forms名前空間)のOnBackButtonPressedメソッドをオーバーライドすればよい(次のコード)。
ただし、メソッドの戻り値としてtrueを返すのを忘れてはいけない。falseを返してしまうと、アプリが[戻る]ボタンに反応しなかった(=アプリの最初の画面である)とシステムは判断して、スタート画面やホーム画面に戻されてしまう(OnBackButtonPressedメソッドをオーバーライドしなかった場合も同様)。
protected override bool OnBackButtonPressed()
{
App.Current.MainPage = new MainPage();
return true;
}
[戻る]ボタンとは、デバイスまたはOSが提供しているボタン(あるいはキー)のうち、前画面へ戻るためのものだ。AndroidとWindowsが備えている(次の画像)。iOSやデスクトップモードのWindowsには存在しないので、前画面に戻るためのUIはアプリでも提供することになる。
前回で紹介したようにNavigationPageクラスを利用してモードレスな画面遷移をすれば、[戻る]ボタンへの対応も、前画面に戻るためのUIもXamarin.Formsが面倒を見てくれる。そうではなく、自前で画面遷移を行う場合には、前画面に戻るためのUIを用意するだけでなく、前述のようにOnBackButtonPressedメソッドをオーバーライドして[戻る]ボタンに対応する必要があるのだ。
画面遷移するアプリは、システムの[戻る]ボタン(キー)に対応する必要がある。NavigationPageクラスなどを利用している場合はXamarin.Formsが面倒を見てくれる。独自に画面遷移を実装する場合は、PageクラスのOnBackButtonPressedメソッドをオーバーライドする。
利用可能バージョン:Visual Studio 2015以降
カテゴリ:Xamarin 処理対象:Xamarin.Forms
関連TIPS:Xamarin.Forms:プロジェクトにXamlページを追加するには?
関連TIPS:Xamarin.Forms:画面遷移するには?
Copyright© Digital Advantage Corp. All Rights Reserved.