1

使用する

  • フレッシュMVVM
  • iOS および Android 上の Xamarin Forms 4.4

Xamarin Forms でモーダル スタックをクリーンアップする方法と、私が持っているものから多くの質問があります。

var numModals = Application.Current.MainPage.Navigation.ModalStack.Count;

// To prevent the page from being temporarily visible as each Modal above it is Popped, set the Opacity to 0
for (int currModal = 0; currModal < numModals; currModal++)
{
    NavigationPage navigationPage = Application.Current.MainPage.Navigation.ModalStack[(numModals - currModal) - 1] as NavigationPage;
    navigationPage.Opacity = 0;
}

for (int currModal = 0; currModal < numModals; currModal++)
{
    await this.CoreMethods.PopPageModel(null, true, false);
}

Application.Currentこれは機能しますが、ViewModel に依存関係が追加されます。私たちがFreshMVVMを使用しているので、それでよりうまく機能し、Application.Curentコードを削除するアプローチを探しています。

IFreshNavigationService を使用したカスタム ナビゲーション サービスだけが思い浮かびますが、それらの例は次のいずれかです。

  1. ログイン ページ ナビゲーションと MainPage ナビゲーションの境界
  2. タブ付きビュー

私が持っているページフローの例は

  1. ホームページ (非モーダル)
  2. ValueHistoryPage (非モーダル)
  3. ConfigureValueDevicePage (モーダル)
  4. ChooseValueDeviceModelPage (モーダル)
  5. ConnectValueDevicePage (モーダル)

この時点で、ユーザーは ValueDevice を構成したが、まだ使用したくないと判断できるので、ValueHistoryPage に戻ります。これは、すべてのモーダルを閉じて、ValueHistoryPage が TopMost になるようにするか、次の新しいナビゲーション セットを開始することを意味します。 CaptureFromValueDevicePage ( modal ) AND は、前の 3 つのモーダル セット (ConfigureValueDevicePage、ChooseValueDeviceModelPage、および ConnectValueDevicePage ) を閉じます。

Modals の最初のセットは 1 つのカスタム IFreshNavigationService にあり、潜在的に CaptureFromValueDevicePage は別の IFreshNavigationService にありますか?

タブ付きビューまたはログイン関連ではない IFreshNavigationService の例はありますか?

4

0 に答える 0