Xamarin.Formsアプリから始まり、かなりのページがあり、ページ間のナビゲーションはアプリによって完全に処理されます。具体的には戻るボタンはありません。私たちはiOSのリリースを予定しているだけなので、問題はありません。Xamarin Page Navigation(again)
最初に表示されるページはログインページです。ログインすると、ホームページに移動します。この移行を実行するには、
LoginPage.Navigation.PushModalAsync(HomePage)
としてください。
ホームページで[ログアウト]ボタンを押すとPopModalAsync()を呼び出すことができますが、問題はログアウトボタンがすべてのページに存在するため、次のようなパスをたどる可能性があります。
ログイン - >ホーム - >作成 - >フォーマット - >印刷 - >ログアウト
と私はすぐにログイン画面にジャンプする必要があります。私が試してみようと思いました楽しみのためだけにそう
System.InvalidOperationException: Page must not already have a parent.
:
は、ユーザーがログアウトボタンを押したのであればホームページ上で、私は
ApplicationHomePage.Navigation.PushModalAsync(LoginPage);
を呼び出してみましたが、例外が発生しました簡単な解決策:
LoginPage.Parent = null;
ApplicationHomePage.Navigation.PushModalAsync(LoginPage);
私は戻ってボタンを持たないだろうし、iPadは1つもないので、ナビゲーションスタックの中身は本当に重要ではありません(右?)
"法的"をナビゲートする方法はありますか?私が今見ていない問題を引き起こすのだろうか?
あなたのアプリケーション全体をモーダルとして表示することは悪い考えです。代わりにホームページ(またはいくつかのプレースホルダー)をrootとして起動し、ログインをモーダルとして表示します。ログインしたら、モーダルを閉じます。彼らがログアウトすると、rootにポップして、再びモーダルを表示します。それとも、他にもたくさんのアプローチがあります。 – Jason