App.xaml.cs内で現在開いているModalPageを取得
xamarin.formsでApp.xaml.cs内のOnSleepやOnResumeなどのライフサイクルイベント内で現在開いているPageを取得したい時はままある。
アプリがバックグラウンドになる時に何か保存したり、アプリがフォアグラウンドになる瞬間にデータを復元したり。
今回は一番上に開いているPageがModalPageでそれが何なのか特定する処理を紹介。
App.xaml.cs内でのCurrentPage(Modal)の取得
以下の様にして、現在開いているModalPageがConfigPageの場合、そのPageクラスを返して、そうでない場合はnullを返す様にする。
NavigationPage navi = null;
try
{
navi = MainPage.Navigation.ModalStack[0] as NavigationPage;
}
catch { }
if (navi == null) return null;
try
{
var configPage = navi.CurrentPage as ConfigPage;
return configPage;
}
catch
{
return null;
}
nullチェックは甘いのでご注意を。
かなり普通すぎてすいません。
ディスカッション
コメント一覧
まだ、コメントがありません