Q&A
MVVMフレームワークPrimsを使用したXamarinFormsで
MasterDetailPageを継承したメインページで
Detail側の画面遷移を行う方法が
下記ドキュメントに記載されています。
https://prismlibrary.com/docs/xamarin-forms/navigation/working-with-masterdetailpages.html
そこではAppクラス内で起動後に最初の画面に遷移する時
下記コードのように最初のページを画面に表示するのですが
NavigateAsyncメソッドの引数のパスが
なぜこのような形になるのか分かりません。
c#
1public class App : PrismApplication 2{ 3 protected override void OnInitialized() 4 { 5 InitializeComponent(); 6 NavigationService.NavigateAsync("/MainPage/NavigationPage/ViewA"); 7 } 8}
私自身の解釈ではNavigateAsyncメソッドの引数のパスとは
GoBackAsyncメソッドなどで画面を戻す時使用するスタック
の中身をどうするか指定するための値であるだけだと考えているので
MainPageのdetailに空のNavigationPageがセットされ
そのNavigationPageの中にViewAがセットされるとは思えないので
初期画面はMasterDetailPageもNavigationPageも表示されない
ただのViewAのみが表示されるだけではないかと考えているのですが
実際動かしてみるとMasterDetailPageのDetail部分にちゃんとViewAが
組み込まれた画面が表示されるので不思議に感じ投稿させていただきました。
動作環境は下記の通りです。
- Windows10
- Visual Studio2019
- Prism.Unity.Forms バージョン8.1.97
- Xamarin.Forms バージョン5.0.0.2337
- Xamarin.Essentials.Interfaces バージョン1.7.1