5

SOなどでMvvmCross&Modalを検索しましたが、既存の1つの答えは役に立ちません。

私たちはMonoTouchとMvvmCrossを使用してクロスプラットフォームアプリを開発しています。これは非常に強力な組み合わせのようです。ただし、ナビゲーションにいくつかの問題があり、徐々に問題が発生しています。現在の問題は-

アプリはTabBarControllerで実行され、各タブにはさらに別のレベルへのナビゲーションがあります。これは正常に機能します。ただし、クライアントは、タブの1つにある[開始]ボタンでモーダルビュー(他のすべて、特にタブバーを非表示にする)を表示することを望んでいます。このビューには、UINavigationControllerと同じように機能する独自のレベルがあります。いつでもtabBarControllerに戻ることができます。

単一のモーダルビューを表示することができましたが、ここから新しいビューを読み込んで元に戻すことに固執しています。

どんな助け/アドバイスもありがたいです!

4

1 に答える 1

5

あなたが探しているのは、UIViewControllerをUINavigationController内にラップするようにプレゼンターをカスタマイズしてから、そのUINavigationControllerをモーダルに提示することだと思いますか?

これを実現するには、@DeapSquatterからの最近のプルリクエストのコードが役立つ可能性があります-https : //github.com/slodge/MvvmCross/pull/9-彼のモーダルナビゲーションプレゼンター を使用して、自分の効果を実現できると思います探している:

        if (view is IMvxModalTouchView)
        {
            if (_currentModalViewController != null)
                throw new MvxException("Only one modal view controller at a time supported");

            var newNav = new UINavigationController();
            newNav.PushViewController(view as UIViewController, false);

            _currentModalViewController = view as UIViewController;

            PresentModalViewController(newNav, true);
            return;
        }

mvvmcrossのアーキテクチャは、ここで意図的に拡張および構成可能です。いくつかの基本的なPresenterクラスが含まれていますが、アプリごとにさまざまなビューを表示する方法をカスタマイズしたいと思う可能性が非常に高くなります。最も単純なデモアプリを超えて、タッチのほとんどのmv​​vmcrossアプリには、カスタムプレゼンターが含まれていると思います。

お役に立てば幸い

スチュアート

于 2012-06-14T16:27:32.363 に答える